Adds Ruby 3.3 to CI on 4-stable #496
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: Test | |
on: [push, pull_request] | |
jobs: | |
test: | |
strategy: | |
fail-fast: false | |
matrix: | |
gemfile: | |
- Gemfile | |
- gemfiles/Gemfile-rails-main | |
- gemfiles/Gemfile-rails-7-0 | |
- gemfiles/Gemfile-rails-6-1 | |
- gemfiles/Gemfile-rails-6-0 | |
- gemfiles/Gemfile-rails-5-2 | |
- gemfiles/Gemfile-rails-5-1 | |
- gemfiles/Gemfile-rails-5-0 | |
- gemfiles/Gemfile-rails-4-2 | |
- gemfiles/Gemfile-rails-4-1 | |
ruby: | |
- '3.3' | |
- '3.2' | |
- '3.1' | |
- '3.0' | |
- '2.7' | |
- '2.6' | |
- '2.5' | |
- '2.4' | |
- '2.3' | |
- '2.2' | |
- '2.1' | |
env: | |
- DEVISE_ORM=active_record | |
- DEVISE_ORM=mongoid | |
exclude: | |
- gemfile: gemfiles/Gemfile-rails-main | |
ruby: '2.7' # Rails > 7.1 supports Ruby >= 3.1 | |
- gemfile: gemfiles/Gemfile-rails-main | |
ruby: '3.0' # Rails > 7.1 supports Ruby >= 3.1 | |
- gemfile: Gemfile | |
ruby: '2.6' | |
- gemfile: Gemfile | |
ruby: '2.5' | |
- gemfile: Gemfile | |
ruby: '2.4' | |
- gemfile: Gemfile | |
ruby: '2.3' | |
- gemfile: Gemfile | |
ruby: '2.2' | |
- gemfile: Gemfile | |
ruby: '2.1' | |
- gemfile: Gemfile | |
env: DEVISE_ORM=mongoid | |
- gemfile: gemfiles/Gemfile-rails-main | |
ruby: '2.6' | |
- gemfile: gemfiles/Gemfile-rails-main | |
ruby: '2.5' | |
- gemfile: gemfiles/Gemfile-rails-main | |
ruby: '2.4' | |
- gemfile: gemfiles/Gemfile-rails-main | |
ruby: '2.3' | |
- gemfile: gemfiles/Gemfile-rails-main | |
ruby: '2.2' | |
- gemfile: gemfiles/Gemfile-rails-main | |
ruby: '2.1' | |
- gemfile: gemfiles/Gemfile-rails-main | |
env: DEVISE_ORM=mongoid | |
- gemfile: gemfiles/Gemfile-rails-7-0 | |
ruby: '2.6' | |
- gemfile: gemfiles/Gemfile-rails-7-0 | |
ruby: '2.5' | |
- gemfile: gemfiles/Gemfile-rails-7-0 | |
ruby: '2.4' | |
- gemfile: gemfiles/Gemfile-rails-7-0 | |
ruby: '2.3' | |
- gemfile: gemfiles/Gemfile-rails-7-0 | |
ruby: '2.2' | |
- gemfile: gemfiles/Gemfile-rails-7-0 | |
ruby: '2.1' | |
- gemfile: gemfiles/Gemfile-rails-7-0 | |
env: DEVISE_ORM=mongoid | |
- gemfile: gemfiles/Gemfile-rails-6-1 | |
ruby: '2.4' | |
- gemfile: gemfiles/Gemfile-rails-6-1 | |
ruby: '2.3' | |
- gemfile: gemfiles/Gemfile-rails-6-1 | |
ruby: '2.2' | |
- gemfile: gemfiles/Gemfile-rails-6-1 | |
ruby: '2.1' | |
- gemfile: gemfiles/Gemfile-rails-6-1 | |
env: DEVISE_ORM=mongoid | |
- gemfile: gemfiles/Gemfile-rails-6-0 | |
ruby: '3.3' | |
- gemfile: gemfiles/Gemfile-rails-6-0 | |
ruby: '3.2' | |
- gemfile: gemfiles/Gemfile-rails-6-0 | |
ruby: '3.1' | |
- gemfile: gemfiles/Gemfile-rails-6-0 | |
ruby: '2.4' | |
- gemfile: gemfiles/Gemfile-rails-6-0 | |
ruby: '2.3' | |
- gemfile: gemfiles/Gemfile-rails-6-0 | |
ruby: '2.2' | |
- gemfile: gemfiles/Gemfile-rails-6-0 | |
ruby: '2.1' | |
- gemfile: gemfiles/Gemfile-rails-6-0 | |
env: DEVISE_ORM=mongoid | |
- gemfile: gemfiles/Gemfile-rails-5-2 | |
ruby: '3.3' | |
- gemfile: gemfiles/Gemfile-rails-5-2 | |
ruby: '3.2' | |
- gemfile: gemfiles/Gemfile-rails-5-2 | |
ruby: '3.1' | |
- gemfile: gemfiles/Gemfile-rails-5-2 | |
ruby: '3.0' | |
- gemfile: gemfiles/Gemfile-rails-5-2 | |
ruby: '2.7' | |
- gemfile: gemfiles/Gemfile-rails-5-2 | |
ruby: '2.2' | |
- gemfile: gemfiles/Gemfile-rails-5-2 | |
ruby: '2.1' | |
- gemfile: gemfiles/Gemfile-rails-5-2 | |
env: DEVISE_ORM=mongoid | |
- gemfile: gemfiles/Gemfile-rails-5-1 | |
ruby: '3.3' | |
- gemfile: gemfiles/Gemfile-rails-5-1 | |
ruby: '3.2' | |
- gemfile: gemfiles/Gemfile-rails-5-1 | |
ruby: '3.1' | |
- gemfile: gemfiles/Gemfile-rails-5-1 | |
ruby: '3.0' | |
- gemfile: gemfiles/Gemfile-rails-5-1 | |
ruby: '2.7' | |
- gemfile: gemfiles/Gemfile-rails-5-1 | |
ruby: '2.1' | |
- gemfile: gemfiles/Gemfile-rails-5-1 | |
env: DEVISE_ORM=mongoid | |
- gemfile: gemfiles/Gemfile-rails-5-0 | |
ruby: '3.3' | |
- gemfile: gemfiles/Gemfile-rails-5-0 | |
ruby: '3.2' | |
- gemfile: gemfiles/Gemfile-rails-5-0 | |
ruby: '3.1' | |
- gemfile: gemfiles/Gemfile-rails-5-0 | |
ruby: '3.0' | |
- gemfile: gemfiles/Gemfile-rails-5-0 | |
ruby: '2.7' | |
- gemfile: gemfiles/Gemfile-rails-5-0 | |
ruby: '2.1' | |
- gemfile: gemfiles/Gemfile-rails-5-0 | |
env: DEVISE_ORM=mongoid | |
- gemfile: gemfiles/Gemfile-rails-4-2 | |
ruby: '3.3' | |
- gemfile: gemfiles/Gemfile-rails-4-2 | |
ruby: '3.2' | |
- gemfile: gemfiles/Gemfile-rails-4-2 | |
ruby: '3.1' | |
- gemfile: gemfiles/Gemfile-rails-4-2 | |
ruby: '3.0' | |
- gemfile: gemfiles/Gemfile-rails-4-2 | |
ruby: '2.7' | |
- gemfile: gemfiles/Gemfile-rails-4-2 | |
ruby: '2.6' | |
- gemfile: gemfiles/Gemfile-rails-4-1 | |
ruby: '3.3' | |
- gemfile: gemfiles/Gemfile-rails-4-1 | |
ruby: '3.2' | |
- gemfile: gemfiles/Gemfile-rails-4-1 | |
ruby: '3.1' | |
- gemfile: gemfiles/Gemfile-rails-4-1 | |
ruby: '3.0' | |
- gemfile: gemfiles/Gemfile-rails-4-1 | |
ruby: '2.7' | |
- gemfile: gemfiles/Gemfile-rails-4-1 | |
ruby: '2.6' | |
- gemfile: gemfiles/Gemfile-rails-4-1 | |
ruby: '2.5' | |
- gemfile: gemfiles/Gemfile-rails-4-1 | |
ruby: '2.4' | |
# TODO: lock `ubunty-20.04` due to older Ruby version compatibility, change to `ubuntu-latest` again when dropping older Ruby support. | |
# https://github.com/ruby/setup-ruby/issues/496#issuecomment-1520662740 | |
runs-on: ubuntu-20.04 | |
env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps | |
BUNDLE_GEMFILE: ${{ matrix.gemfile }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Bundler 1.x for Rails 4.x and Ruby <= 2.2 | |
if: ${{ matrix.gemfile == 'gemfiles/Gemfile-rails-4-1' || matrix.gemfile == 'gemfiles/Gemfile-rails-4-2' || matrix.ruby <= '2.2' }} | |
run: echo "BUNDLER_VERSION=1.17.3" >> $GITHUB_ENV | |
- name: Setup Rubygems version as default for Ruby < 2.5 | |
if: ${{ matrix.ruby < '2.5' }} | |
run: echo "RUBYGEMS_VERSION=default" >> $GITHUB_ENV | |
- name: Setup Rubygems version as 3.2.3 for Ruby 2.5 | |
if: ${{ matrix.ruby == '2.5' }} | |
run: echo "RUBYGEMS_VERSION=3.2.3" >> $GITHUB_ENV | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
bundler-cache: true # runs bundle install and caches installed gems automatically | |
bundler: ${{ env.BUNDLER_VERSION || 'default' }} | |
rubygems: ${{ env.RUBYGEMS_VERSION || 'latest' }} | |
- uses: supercharge/[email protected] | |
if: ${{ matrix.env == 'DEVISE_ORM=mongoid' }} | |
- run: bundle exec rake |