【GitHub Actions】複数のRubyバージョンとGemfileの組み合わせでテストを実行する
2022/03/05
「GitHub Actionsで複数のRubyバージョンでテストを実行する」に複数の Gemfile を加えた版
手順
gemfiles ディレクトリに Gemfile を用意する
$ tree gemfiles
gemfiles
├── rails_5.0.gemfile
├── rails_5.1.gemfile
├── rails_5.2.gemfile
└── rails_6.0.gemfile
Rubyバージョンの時と同じように、matrix に gemfile を指定する
環境変数 BUNDLE_GEMFILE で使用する Gemfile を指定することができるみたい
name は任意
.github/workflows/ruby.yml
name: Ruby
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
ruby: ['2.4', '2.5', '2.6', '2.7', '3.0']
+ gemfile: ['gemfiles/rails_5.0.gemfile', 'gemfiles/rails_5.1.gemfile', 'gemfiles/rails_5.2.gemfile', 'gemfiles/rails_6.0.gemfile']
+ env:
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
+ name: Ruby ${{ matrix.ruby }}, ${{ matrix.gemfile }}
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Run tests
run: bundle exec rake
テストをスキップしたい組み合わせがある場合
exclude で除外したい組み合わせを指定することができる
.github/workflows/ruby.yml
name: Ruby
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
ruby: ['2.4', '2.5', '2.6', '2.7', '3.0']
gemfile: ['gemfiles/rails_5.0.gemfile', 'gemfiles/rails_5.1.gemfile', 'gemfiles/rails_5.2.gemfile', 'gemfiles/rails_6.0.gemfile']
+ exclude:
+ - ruby: '2.4'
+ gemfile: 'gemfiles/rails_6.0.gemfile'
+ - ruby: '3.0'
+ gemfile: 'gemfiles/rails_5.0.gemfile'
+ - ruby: '3.0'
+ gemfile: 'gemfiles/rails_5.1.gemfile'
+ - ruby: '3.0'
+ gemfile: 'gemfiles/rails_5.2.gemfile'
env:
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
name: Ruby ${{ matrix.ruby }}, ${{ matrix.gemfile }}
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Run tests
run: bundle exec rake