GitHub Actionsで複数のRubyバージョンでテストを実行する
2021/05/10
Railsアプリの場合、テストは1つのRubyバージョンだけで問題ないが、複数のRubyバージョンをサポートしているGemの場合はテストも複数のバージョンで確認しておきたい
今回、GitHub Actionsで複数のRubyバージョンでテストを実行するようにしたのでそのメモ
手順
Ruby 2.5.7のみでテストが実行されるワークフローファイル
Gemを新規作成(bundle gem gem_name
)した時に自動で作られたワークフローファイル
このファイルを複数バージョンでテストが実行されるように書き換える
.github/workflows/main.yml
name: Ruby
on: [push,pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.5.7
- name: Run the default task
run: |
gem install bundler -v 2.2.7
bundle install
bundle exec rake
複数バージョンでテストが実行するように書き換えた差分
Rubyバージョン、2.5, 2.6, 2.7でテストが実行されるようにした
.github/workflows/main.yml
jobs:
build:
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ ruby: [2.5, 2.6, 2.7]
+ name: Ruby ${{ matrix.ruby }}
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
- ruby-version: 2.5.7
+ ruby-version: ${{ matrix.ruby }}
- name: Run the default task
複数バージョンでテストが実行されている
実際に複数バージョンのテストに対応したPRとGitHub Actionsの実行結果
- Support Matrix Testing by ytkg · Pull Request #8 · ytkg/switchbot
- Support Matrix Testing · ytkg/switchbot@065c756