Skip to content

Add Ruby 3, Rails 7 to CI matrix #140

Add Ruby 3, Rails 7 to CI matrix

Add Ruby 3, Rails 7 to CI matrix #140

Workflow file for this run

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