From c0945629a71d613a3a8ca380fa03e3f0cbd25f23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Luis=20Leal=20Cardoso=20Junior?= Date: Sat, 31 Oct 2026 14:56:49 -0300 Subject: [PATCH 1/5] Build Ruby 3.1 on ubuntu-24.04 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0dc132d2..9ae14ce2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: - rails: "8.1" ruby: "3.1" - runs-on: ubuntu-latest + runs-on: ${{ matrix.ruby == '3.1' && 'ubuntu-24.04' || 'ubuntu-latest' }} services: redis: From 9bba72b20554011d37ae3144af39c1708246e3ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Luis=20Leal=20Cardoso=20Junior?= Date: Sat, 31 Oct 2026 15:02:17 -0300 Subject: [PATCH 2/5] Pin each CI job to its Rails minor --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9ae14ce2..494b8bcd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,12 +17,12 @@ jobs: strategy: matrix: ruby: ["4.0", "3.4", "3.3", "3.2", "3.1"] - rails: ["8.1", "8.0", "7.2", "7.1"] + rails: ["8.1.0", "8.0.0", "7.2.0", "7.1.0"] exclude: # Rails 8.x requires Ruby >= 3.2 - - rails: "8.0" + - rails: "8.0.0" ruby: "3.1" - - rails: "8.1" + - rails: "8.1.0" ruby: "3.1" runs-on: ${{ matrix.ruby == '3.1' && 'ubuntu-24.04' || 'ubuntu-latest' }} From 1d945dbb69cbaa48251da0b37a3b3fbbc61ab885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Luis=20Leal=20Cardoso=20Junior?= Date: Sat, 31 Oct 2026 15:04:16 -0300 Subject: [PATCH 3/5] Only pin Rails and json when RAILS_VERSION is set --- Gemfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 52472434..bb3e1f14 100644 --- a/Gemfile +++ b/Gemfile @@ -4,10 +4,12 @@ source "https://rubygems.org" gemspec +rails_version = ENV.fetch("RAILS_VERSION", "8.1.0") + gem "rubocop", require: false gem "codeclimate-test-reporter" gem "concurrent-ruby", "< 1.3.9" # json 3.0 dropped the quirks_mode option that ActiveSupport 7.2.3.x still passes -gem "json", "< 3" +gem "json", "< 3" if Gem::Version.new(rails_version) < Gem::Version.new("8.1") -gem "rails", "~> #{ENV.fetch('RAILS_VERSION', '8.0')}" +gem "rails", "~> #{rails_version}" From 40df8da47481aed49d316a0f7f57c68b55eaf0ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Luis=20Leal=20Cardoso=20Junior?= Date: Sat, 31 Oct 2026 15:15:59 -0300 Subject: [PATCH 4/5] Build Ruby 4.1 preview --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 494b8bcd..01246d13 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: - ruby: ["4.0", "3.4", "3.3", "3.2", "3.1"] + ruby: ["4.1.0-preview1", "4.0", "3.4", "3.3", "3.2", "3.1"] rails: ["8.1.0", "8.0.0", "7.2.0", "7.1.0"] exclude: # Rails 8.x requires Ruby >= 3.2 @@ -26,6 +26,7 @@ jobs: ruby: "3.1" runs-on: ${{ matrix.ruby == '3.1' && 'ubuntu-24.04' || 'ubuntu-latest' }} + continue-on-error: ${{ matrix.ruby == '4.1.0-preview1' }} services: redis: From 913a0256d23ffceed8f9fbab6465be63ad2710d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Luis=20Leal=20Cardoso=20Junior?= Date: Sat, 31 Oct 2026 15:21:02 -0300 Subject: [PATCH 5/5] Update actions/checkout to v5 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 01246d13..d5a560da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,7 +41,7 @@ jobs: env: RAILS_VERSION: ${{ matrix.rails }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: ruby/setup-ruby@v1 with: