CI: Attempt to let ruby/setup-ruby pick Bundler, RubyGems #142
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: build | |
on: | |
push: | |
branches: | |
- main | |
- renovate/** | |
pull_request: | |
branches: | |
- main | |
workflow_call: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3'] | |
gemfile: ['rails_5_2', 'rails_6_0', 'rails_6_1', 'rails_7_0', 'rails_7_1', 'rails_7_2'] | |
exclude: | |
# Latest ruby will test | |
# - all rails versions in current major | |
# - latest rails version in the previous major | |
# Supported rubies will test | |
# - all permissible supported rails versions | |
# Unsupported rubies will test | |
# - rails versions in each branch if they are released within 6 months of EOL | |
# - nothing in the current rails major | |
# 2.6 -> Unsupported from March '22 -> Only test up to Sep '22 | |
# 2.7 -> Unsupported from March '23 -> Only test up to Sep '23 | |
# 3.0/3.1/3.2 -> Supported | |
- { ruby: '2.6', gemfile: 'rails_6_0' } | |
- { ruby: '2.6', gemfile: 'rails_6_1' } | |
- { ruby: '2.6', gemfile: 'rails_7_0' } | |
- { ruby: '2.6', gemfile: 'rails_7_1' } | |
- { ruby: '2.6', gemfile: 'rails_7_2' } | |
- { ruby: '2.7', gemfile: 'rails_7_0' } | |
- { ruby: '2.7', gemfile: 'rails_7_1' } | |
- { ruby: '2.7', gemfile: 'rails_7_2' } | |
- { ruby: '3.0', gemfile: 'rails_7_2' } | |
# Ruby 3+ won't work with Rails 5.2: https://github.com/rails/rails/issues/40938 | |
- { ruby: '3.0', gemfile: 'rails_5_2' } | |
# Capybara has an incompatibility here with rails 6. It's easier to just exclude this one run from the matrix until it's out of support | |
- { ruby: '3.0', gemfile: 'rails_6_0' } | |
- { ruby: '3.0', gemfile: 'rails_6_1' } | |
- { ruby: '3.1', gemfile: 'rails_5_2' } | |
# Ruby 3.1+ has a conflicting Psych version with Rails 6.x: https://stackoverflow.com/questions/71191685/visit-psych-nodes-alias-unknown-alias-default-psychbadalias | |
- { ruby: '3.1', gemfile: 'rails_6_0' } | |
- { ruby: '3.1', gemfile: 'rails_6_1' } | |
- { ruby: '3.2', gemfile: 'rails_5_2' } | |
- { ruby: '3.2', gemfile: 'rails_6_0' } | |
- { ruby: '3.2', gemfile: 'rails_6_1' } | |
- { ruby: '3.3', gemfile: 'rails_5_2' } | |
- { ruby: '3.3', gemfile: 'rails_6_0' } | |
- { ruby: '3.3', gemfile: 'rails_6_1' } | |
env: | |
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
bundler-cache: true | |
- run: bundle exec rake spec | |
- run: bundle exec rubocop | |
- run: bundle exec rake cucumber |