From ace2baa5c0b1cb6cad57c0f42a7adaf637c3b4d8 Mon Sep 17 00:00:00 2001 From: Jack Rothrock Date: Tue, 10 Feb 2026 15:14:08 -0700 Subject: [PATCH 1/2] Add Ruby 4.0 to test matrix --- .github/workflows/test.yml | 29 ++++++++++++++++++++++------- README.md | 2 +- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6c2fa65..8ca461c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4'] + ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4', '4.0'] env: DOCKER_RUBY_VERSION: ${{ matrix.ruby }} BUNDLE_GEMFILE: gems/rails.gemfile @@ -21,21 +21,36 @@ jobs: echo "LIBRARY_VERSION=$VERSION" >> $GITHUB_ENV - name: Set up Ruby uses: ruby/setup-ruby@v1 - if: ${{ (env.LIBRARY_VERSION == '1' && !contains(fromJson('["3.4"]'), matrix.ruby)) || - (env.LIBRARY_VERSION == '2' && !contains(fromJson('["2.6", "2.7", "3.0"]'), matrix.ruby)) }} + if: ${{ + (env.LIBRARY_VERSION == '1' && + !startsWith(matrix.ruby, '3.4') && + !startsWith(matrix.ruby, '4.') + ) || + (env.LIBRARY_VERSION == '2' && + !startsWith(matrix.ruby, '2.6') && + !startsWith(matrix.ruby, '2.7') && + !startsWith(matrix.ruby, '3.0') + ) + }} with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: Run RSpec run: | - if [[ "$LIBRARY_VERSION" == "1" && ("${{ matrix.ruby }}" == "3.4" ) ]]; then - echo "Skipping Ruby ${{ matrix.ruby }} for Library v1.x" + RUBY="${{ matrix.ruby }}" + + # Library v1: block Ruby >= 3.4 (3.4, 4.x, 5.x, ...) + if [[ "$LIBRARY_VERSION" == "1" && ( "$RUBY" == 3.4* || "$RUBY" == 4.* || "$RUBY" == 5.* ) ]]; then + echo "Skipping Ruby $RUBY for Library v1.x (>= 3.4 unsupported)" exit 0 fi - if [[ "$LIBRARY_VERSION" == "2" && ( "${{ matrix.ruby }}" == "2.6" || "${{ matrix.ruby }}" == "2.7" || "${{ matrix.ruby }}" == "3.0" ) ]]; then - echo "Skipping Ruby ${{ matrix.ruby }} for Library v2.x" + + # Library v2: block specific old Rubies + if [[ "$LIBRARY_VERSION" == "2" && ( "$RUBY" == 2.6* || "$RUBY" == 2.7* || "$RUBY" == 3.0* ) ]]; then + echo "Skipping Ruby $RUBY for Library v2.x" exit 0 fi + bundle exec rake test rubocop: diff --git a/README.md b/README.md index e9ad634..b00ec2d 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ bundle exec rake test file=/path/to/spec/_spec.rb To run test(s) against a specific Ruby version: ```ruby -DOCKER_RUBY_VERSION=3.4 bundle exec rake test +DOCKER_RUBY_VERSION=4.0 bundle exec rake test ``` ## Local From d3ee7d79695e5e0a4c36e4cc85558c45d7dc86ff Mon Sep 17 00:00:00 2001 From: Jack Rothrock Date: Tue, 10 Feb 2026 15:20:43 -0700 Subject: [PATCH 2/2] Fix --- .github/workflows/test.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8ca461c..6e6fde6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,17 +21,7 @@ jobs: echo "LIBRARY_VERSION=$VERSION" >> $GITHUB_ENV - name: Set up Ruby uses: ruby/setup-ruby@v1 - if: ${{ - (env.LIBRARY_VERSION == '1' && - !startsWith(matrix.ruby, '3.4') && - !startsWith(matrix.ruby, '4.') - ) || - (env.LIBRARY_VERSION == '2' && - !startsWith(matrix.ruby, '2.6') && - !startsWith(matrix.ruby, '2.7') && - !startsWith(matrix.ruby, '3.0') - ) - }} + if: ${{ (env.LIBRARY_VERSION == '1' && !startsWith(matrix.ruby, '3.4') && !startsWith(matrix.ruby, '4.')) || (env.LIBRARY_VERSION == '2' && !startsWith(matrix.ruby, '2.6') && !startsWith(matrix.ruby, '2.7') && !startsWith(matrix.ruby, '3.0')) }} with: ruby-version: ${{ matrix.ruby }} bundler-cache: true