高木のブログ

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

複数バージョンでテストが実行されている

複数バージョンのRubyを使ったテスト

実際に複数バージョンのテストに対応したPRとGitHub Actionsの実行結果

参考


Written by ytkg, Twitter, GitHub

Pixela