Reorganize test matrix & use latest bundler

* Rails and Ruby versions follow the most recent to oldest, except for
  Rails main, so we can keep the Gemfile the first one.
* Excluding specific matrix combinations based on the Gemfile first,
  Ruby version next, and keep the same order (most recent -> oldest)
* Quote all Ruby versions to keep things consistent. It's required for
  the '3.0' version to avoid the float issue where it'd use the latest
  3.x instead.
This commit is contained in:
Carlos Antonio da Silva 2022-02-25 14:44:26 -03:00
parent 542df3634b
commit 451ff6d49c
3 changed files with 112 additions and 118 deletions

View File

@ -16,127 +16,121 @@ jobs:
- gemfiles/Gemfile-rails-4-2 - gemfiles/Gemfile-rails-4-2
- gemfiles/Gemfile-rails-4-1 - gemfiles/Gemfile-rails-4-1
ruby: ruby:
- 2.1 - '3.1'
- 2.2
- 2.3
- 2.4
- 2.5
- 2.6
- 2.7
- '3.0' - '3.0'
- 3.1 - '2.7'
- '2.6'
- '2.5'
- '2.4'
- '2.3'
- '2.2'
- '2.1'
env: env:
- DEVISE_ORM=active_record - DEVISE_ORM=active_record
- DEVISE_ORM=mongoid - DEVISE_ORM=mongoid
exclude: exclude:
- ruby: 2.1 - gemfile: Gemfile
gemfile: Gemfile ruby: '2.6'
- ruby: 2.1 - gemfile: Gemfile
gemfile: gemfiles/Gemfile-rails-6-0 ruby: '2.5'
- ruby: 2.1 - gemfile: Gemfile
gemfile: gemfiles/Gemfile-rails-6-1 ruby: '2.4'
- ruby: 2.1 - gemfile: Gemfile
gemfile: gemfiles/Gemfile-rails-main ruby: '2.3'
- ruby: 2.1 - gemfile: Gemfile
gemfile: gemfiles/Gemfile-rails-5-2 ruby: '2.2'
- ruby: 2.1 - gemfile: Gemfile
gemfile: gemfiles/Gemfile-rails-5-1 ruby: '2.1'
- ruby: 2.1 - gemfile: Gemfile
gemfile: gemfiles/Gemfile-rails-5-0 env: DEVISE_ORM=mongoid
- ruby: 2.2 - gemfile: gemfiles/Gemfile-rails-main
gemfile: Gemfile ruby: '2.6'
- ruby: 2.2 - gemfile: gemfiles/Gemfile-rails-main
gemfile: gemfiles/Gemfile-rails-6-0 ruby: '2.5'
- ruby: 2.2 - gemfile: gemfiles/Gemfile-rails-main
gemfile: gemfiles/Gemfile-rails-6-1 ruby: '2.4'
- ruby: 2.2 - gemfile: gemfiles/Gemfile-rails-main
gemfile: gemfiles/Gemfile-rails-main ruby: '2.3'
- ruby: 2.2 - gemfile: gemfiles/Gemfile-rails-main
gemfile: gemfiles/Gemfile-rails-5-2 ruby: '2.2'
- ruby: 2.3 - gemfile: gemfiles/Gemfile-rails-main
gemfile: Gemfile ruby: '2.1'
- ruby: 2.3 - gemfile: gemfiles/Gemfile-rails-main
gemfile: gemfiles/Gemfile-rails-6-0 env: DEVISE_ORM=mongoid
- ruby: 2.3 - gemfile: gemfiles/Gemfile-rails-6-1
gemfile: gemfiles/Gemfile-rails-6-1 ruby: '2.4'
- ruby: 2.3 - gemfile: gemfiles/Gemfile-rails-6-1
gemfile: gemfiles/Gemfile-rails-main ruby: '2.3'
- ruby: 2.4 - gemfile: gemfiles/Gemfile-rails-6-1
gemfile: Gemfile ruby: '2.2'
- ruby: 2.4 - gemfile: gemfiles/Gemfile-rails-6-1
gemfile: gemfiles/Gemfile-rails-6-0 ruby: '2.1'
- ruby: 2.4 - gemfile: gemfiles/Gemfile-rails-6-1
gemfile: gemfiles/Gemfile-rails-6-1 env: DEVISE_ORM=mongoid
- ruby: 2.4 - gemfile: gemfiles/Gemfile-rails-6-0
gemfile: gemfiles/Gemfile-rails-main ruby: '3.1'
- ruby: 2.4 - gemfile: gemfiles/Gemfile-rails-6-0
gemfile: gemfiles/Gemfile-rails-4-1 ruby: '2.4'
- ruby: 2.5 - gemfile: gemfiles/Gemfile-rails-6-0
gemfile: gemfiles/Gemfile-rails-4-1 ruby: '2.3'
- ruby: 2.5 - gemfile: gemfiles/Gemfile-rails-6-0
gemfile: gemfiles/Gemfile-rails-main ruby: '2.2'
- ruby: 2.5 - gemfile: gemfiles/Gemfile-rails-6-0
gemfile: Gemfile ruby: '2.1'
- ruby: 2.6 - gemfile: gemfiles/Gemfile-rails-6-0
gemfile: gemfiles/Gemfile-rails-4-1 env: DEVISE_ORM=mongoid
- ruby: 2.6 - gemfile: gemfiles/Gemfile-rails-5-2
gemfile: gemfiles/Gemfile-rails-4-2 ruby: '3.1'
- ruby: 2.6 - gemfile: gemfiles/Gemfile-rails-5-2
gemfile: Gemfile ruby: '3.0'
- ruby: 2.6 - gemfile: gemfiles/Gemfile-rails-5-2
gemfile: gemfiles/Gemfile-rails-main ruby: '2.7'
- ruby: 2.7 - gemfile: gemfiles/Gemfile-rails-5-2
gemfile: gemfiles/Gemfile-rails-4-1 ruby: '2.2'
- ruby: 2.7 - gemfile: gemfiles/Gemfile-rails-5-2
gemfile: gemfiles/Gemfile-rails-4-2 ruby: '2.1'
- ruby: 2.7 - gemfile: gemfiles/Gemfile-rails-5-2
gemfile: gemfiles/Gemfile-rails-5-0 env: DEVISE_ORM=mongoid
- ruby: 2.7 - gemfile: gemfiles/Gemfile-rails-5-1
gemfile: gemfiles/Gemfile-rails-5-1 ruby: '3.1'
- ruby: 2.7 - gemfile: gemfiles/Gemfile-rails-5-1
gemfile: gemfiles/Gemfile-rails-5-2 ruby: '3.0'
- ruby: '3.0' - gemfile: gemfiles/Gemfile-rails-5-1
gemfile: gemfiles/Gemfile-rails-4-1 ruby: '2.7'
- ruby: '3.0' - gemfile: gemfiles/Gemfile-rails-5-1
gemfile: gemfiles/Gemfile-rails-4-2 ruby: '2.1'
- ruby: '3.0' - gemfile: gemfiles/Gemfile-rails-5-1
gemfile: gemfiles/Gemfile-rails-5-0 env: DEVISE_ORM=mongoid
- ruby: '3.0' - gemfile: gemfiles/Gemfile-rails-5-0
gemfile: gemfiles/Gemfile-rails-5-1 ruby: '3.1'
- ruby: '3.0' - gemfile: gemfiles/Gemfile-rails-5-0
gemfile: gemfiles/Gemfile-rails-5-2 ruby: '3.0'
- ruby: 3.1 - gemfile: gemfiles/Gemfile-rails-5-0
gemfile: gemfiles/Gemfile-rails-5-1 ruby: '2.7'
- ruby: 3.1 - gemfile: gemfiles/Gemfile-rails-5-0
gemfile: gemfiles/Gemfile-rails-5-2 ruby: '2.1'
- ruby: 3.1 - gemfile: gemfiles/Gemfile-rails-5-0
gemfile: gemfiles/Gemfile-rails-4-1 env: DEVISE_ORM=mongoid
- ruby: 3.1 - gemfile: gemfiles/Gemfile-rails-4-2
gemfile: gemfiles/Gemfile-rails-4-2 ruby: '3.1'
- ruby: 3.1 - gemfile: gemfiles/Gemfile-rails-4-2
gemfile: gemfiles/Gemfile-rails-5-0 ruby: '3.0'
- ruby: 3.1 - gemfile: gemfiles/Gemfile-rails-4-2
gemfile: gemfiles/Gemfile-rails-5-1 ruby: '2.7'
- ruby: 3.1 - gemfile: gemfiles/Gemfile-rails-4-2
gemfile: gemfiles/Gemfile-rails-5-2 ruby: '2.6'
- ruby: 3.1 - gemfile: gemfiles/Gemfile-rails-4-1
gemfile: gemfiles/Gemfile-rails-6-0 ruby: '3.1'
- env: DEVISE_ORM=mongoid - gemfile: gemfiles/Gemfile-rails-4-1
gemfile: Gemfile ruby: '3.0'
- env: DEVISE_ORM=mongoid - gemfile: gemfiles/Gemfile-rails-4-1
gemfile: gemfiles/Gemfile-rails-5-0 ruby: '2.7'
- env: DEVISE_ORM=mongoid - gemfile: gemfiles/Gemfile-rails-4-1
gemfile: gemfiles/Gemfile-rails-5-1 ruby: '2.6'
- env: DEVISE_ORM=mongoid - gemfile: gemfiles/Gemfile-rails-4-1
gemfile: gemfiles/Gemfile-rails-5-2 ruby: '2.5'
- env: DEVISE_ORM=mongoid - gemfile: gemfiles/Gemfile-rails-4-1
gemfile: gemfiles/Gemfile-rails-6-0 ruby: '2.4'
- env: DEVISE_ORM=mongoid
gemfile: gemfiles/Gemfile-rails-6-1
- env: DEVISE_ORM=mongoid
gemfile: Gemfile
- env: DEVISE_ORM=mongoid
gemfile: gemfiles/Gemfile-rails-main
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
BUNDLE_GEMFILE: ${{ matrix.gemfile }} BUNDLE_GEMFILE: ${{ matrix.gemfile }}

View File

@ -239,4 +239,4 @@ DEPENDENCIES
webrat (= 0.7.3) webrat (= 0.7.3)
BUNDLED WITH BUNDLED WITH
2.3.4 2.3.8

View File

@ -13,7 +13,7 @@ gem "rails-controller-testing", github: "rails/rails-controller-testing"
gem "responders", "~> 3.0" gem "responders", "~> 3.0"
if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new("3.1") if RUBY_VERSION >= "3.1"
gem "net-smtp", require: false gem "net-smtp", require: false
gem "net-imap", require: false gem "net-imap", require: false
gem "net-pop", require: false gem "net-pop", require: false