Add Ruby 3, Rails 7 to CI matrix #140
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: CI | |
on: | |
push: | |
branches: [ master ] | |
schedule: | |
- cron: '0 0 12,26 * *' # roughly every two weeks to run on new Ruby versions | |
pull_request: | |
branches: [ master ] | |
workflow_dispatch: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
ruby: | |
- 2.3 | |
- 2.4 | |
- 2.5 | |
- 2.6 | |
- 2.7 | |
- 3.0 | |
- 3.1 | |
- 3.2 | |
gemfile: | |
# These are located in the gemfiles/ folder | |
- rails42 | |
- rails50 | |
- rails51 | |
- rails52 | |
- rails60 | |
- rails61 | |
- rails70 | |
- rails42_haml | |
- rails50_haml | |
- rails51_haml | |
- rails52_haml | |
- rails60_haml | |
- rails61_haml | |
- rails70_haml | |
- rails42_boc | |
- rails50_boc | |
- rails51_boc | |
- rails52_boc | |
- rails60_boc | |
- rails61_boc | |
- rails70_boc | |
- rack | |
- rack_boc | |
# - pry09 | |
# - pry10 | |
# - pry11 | |
exclude: | |
# Following https://www.fastruby.io/blog/ruby/rails/versions/compatibility-table.html | |
# to decide what to include. | |
- { ruby: 2.3, gemfile: rails42 } | |
- { ruby: 2.3, gemfile: rails42_boc } | |
- { ruby: 2.3, gemfile: rails42_haml } | |
- { ruby: 2.3, gemfile: rails60 } | |
- { ruby: 2.3, gemfile: rails60_boc } | |
- { ruby: 2.3, gemfile: rails60_haml } | |
- { ruby: 2.3, gemfile: rails61 } | |
- { ruby: 2.3, gemfile: rails61_boc } | |
- { ruby: 2.3, gemfile: rails61_haml } | |
- { ruby: 2.3, gemfile: rails70 } | |
- { ruby: 2.3, gemfile: rails70_boc } | |
- { ruby: 2.3, gemfile: rails70_haml } | |
- { ruby: 2.4, gemfile: rails42 } | |
- { ruby: 2.4, gemfile: rails42_boc } | |
- { ruby: 2.4, gemfile: rails42_haml } | |
- { ruby: 2.4, gemfile: rails60 } | |
- { ruby: 2.4, gemfile: rails60_boc } | |
- { ruby: 2.4, gemfile: rails60_haml } | |
- { ruby: 2.4, gemfile: rails61 } | |
- { ruby: 2.4, gemfile: rails61_boc } | |
- { ruby: 2.4, gemfile: rails61_haml } | |
- { ruby: 2.4, gemfile: rails70 } | |
- { ruby: 2.4, gemfile: rails70_boc } | |
- { ruby: 2.4, gemfile: rails70_haml } | |
- { ruby: 2.5, gemfile: rails42 } | |
- { ruby: 2.5, gemfile: rails42_boc } | |
- { ruby: 2.5, gemfile: rails42_haml } | |
- { ruby: 2.5, gemfile: rails70 } | |
- { ruby: 2.5, gemfile: rails70_boc } | |
- { ruby: 2.5, gemfile: rails70_haml } | |
- { ruby: 2.5, gemfile: rails50 } | |
- { ruby: 2.5, gemfile: rails50_boc } | |
- { ruby: 2.5, gemfile: rails50_haml } | |
- { ruby: 2.6, gemfile: rails42 } | |
- { ruby: 2.6, gemfile: rails42_boc } | |
- { ruby: 2.6, gemfile: rails42_haml } | |
- { ruby: 2.6, gemfile: rails50 } | |
- { ruby: 2.6, gemfile: rails50_boc } | |
- { ruby: 2.6, gemfile: rails50_haml } | |
- { ruby: 2.6, gemfile: rails51 } | |
- { ruby: 2.6, gemfile: rails51_boc } | |
- { ruby: 2.6, gemfile: rails51_haml } | |
- { ruby: 2.6, gemfile: rails52 } | |
- { ruby: 2.6, gemfile: rails52_boc } | |
- { ruby: 2.6, gemfile: rails52_haml } | |
- { ruby: 2.6, gemfile: rails60 } | |
- { ruby: 2.6, gemfile: rails60_boc } | |
- { ruby: 2.6, gemfile: rails60_haml } | |
- { ruby: 2.6, gemfile: rails70 } | |
- { ruby: 2.6, gemfile: rails70_boc } | |
- { ruby: 2.6, gemfile: rails70_haml } | |
- { ruby: 2.7, gemfile: rails42 } | |
- { ruby: 2.7, gemfile: rails42_boc } | |
- { ruby: 2.7, gemfile: rails42_haml } | |
- { ruby: 2.7, gemfile: rails50 } | |
- { ruby: 2.7, gemfile: rails50_boc } | |
- { ruby: 2.7, gemfile: rails50_haml } | |
- { ruby: 2.7, gemfile: rails51 } | |
- { ruby: 2.7, gemfile: rails51_boc } | |
- { ruby: 2.7, gemfile: rails51_haml } | |
- { ruby: 2.7, gemfile: rails52 } | |
- { ruby: 2.7, gemfile: rails52_boc } | |
- { ruby: 2.7, gemfile: rails52_haml } | |
- { ruby: 2.7, gemfile: rails60 } | |
- { ruby: 2.7, gemfile: rails60_boc } | |
- { ruby: 2.7, gemfile: rails60_haml } | |
- { ruby: 3.0, gemfile: rails42 } | |
- { ruby: 3.0, gemfile: rails42_boc } | |
- { ruby: 3.0, gemfile: rails42_haml } | |
- { ruby: 3.0, gemfile: rails50 } | |
- { ruby: 3.0, gemfile: rails50_boc } | |
- { ruby: 3.0, gemfile: rails50_haml } | |
- { ruby: 3.0, gemfile: rails51 } | |
- { ruby: 3.0, gemfile: rails51_boc } | |
- { ruby: 3.0, gemfile: rails51_haml } | |
- { ruby: 3.0, gemfile: rails52 } | |
- { ruby: 3.0, gemfile: rails52_boc } | |
- { ruby: 3.0, gemfile: rails52_haml } | |
- { ruby: 3.0, gemfile: rails60 } | |
- { ruby: 3.0, gemfile: rails60_boc } | |
- { ruby: 3.0, gemfile: rails60_haml } | |
- { ruby: 3.1, gemfile: rails42 } | |
- { ruby: 3.1, gemfile: rails42_boc } | |
- { ruby: 3.1, gemfile: rails42_haml } | |
- { ruby: 3.1, gemfile: rails50 } | |
- { ruby: 3.1, gemfile: rails50_boc } | |
- { ruby: 3.1, gemfile: rails50_haml } | |
- { ruby: 3.1, gemfile: rails51 } | |
- { ruby: 3.1, gemfile: rails51_boc } | |
- { ruby: 3.1, gemfile: rails51_haml } | |
- { ruby: 3.1, gemfile: rails52 } | |
- { ruby: 3.1, gemfile: rails52_boc } | |
- { ruby: 3.1, gemfile: rails52_haml } | |
- { ruby: 3.1, gemfile: rails60 } | |
- { ruby: 3.1, gemfile: rails60_boc } | |
- { ruby: 3.1, gemfile: rails60_haml } | |
- { ruby: 3.2, gemfile: rails42 } | |
- { ruby: 3.2, gemfile: rails42_boc } | |
- { ruby: 3.2, gemfile: rails42_haml } | |
- { ruby: 3.2, gemfile: rails50 } | |
- { ruby: 3.2, gemfile: rails50_boc } | |
- { ruby: 3.2, gemfile: rails50_haml } | |
- { ruby: 3.2, gemfile: rails51 } | |
- { ruby: 3.2, gemfile: rails51_boc } | |
- { ruby: 3.2, gemfile: rails51_haml } | |
- { ruby: 3.2, gemfile: rails52 } | |
- { ruby: 3.2, gemfile: rails52_boc } | |
- { ruby: 3.2, gemfile: rails52_haml } | |
- { ruby: 3.2, gemfile: rails60 } | |
- { ruby: 3.2, gemfile: rails60_boc } | |
- { ruby: 3.2, gemfile: rails60_haml } | |
env: | |
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
bundler-cache: true | |
- name: Bundle install | |
run: | | |
bundle config path vendor/bundle | |
bundle install --jobs 4 --retry 3 | |
- name: RSpec | |
run: bundle exec rspec -f doc --color | |
test_older: | |
# Ruby 2.2 has a known issue on Ubuntu 22, so we must test it on Ubuntu 20 | |
# https://github.com/ruby/setup-ruby/issues/496 | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
ruby: | |
- 2.2 | |
gemfile: | |
# These are located in the gemfiles/ folder | |
- rails42 | |
- rails50 | |
- rails51 | |
- rails52 | |
- rails42_haml | |
- rails50_haml | |
- rails51_haml | |
- rails52_haml | |
- rails42_boc | |
- rails50_boc | |
- rails51_boc | |
- rails52_boc | |
- rack | |
- rack_boc | |
# - pry09 | |
# - pry10 | |
# - pry11 | |
env: | |
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
bundler-cache: true | |
- name: Bundle install | |
run: | | |
bundle config path vendor/bundle | |
bundle install --jobs 4 --retry 3 | |
- name: RSpec | |
run: bundle exec rspec -f doc --color |