LoginSignup
0
0

More than 1 year has passed since last update.

共通利用のgemでRubyの複数バージョンテストを行う

Posted at

背景

社内で利用している共通gemがあり、今まではCircleCIによってrspecを回していた。
その際最新のRubyバージョンでのみCIを回すようにしていたのでコード修正やライブラリの更新などで不意に古いバージョンのRubyで動かなくなるのではという懸念があった。
(今の所利用しているシステムが少ないからなんとかなっているが今後増える可能性があるのでバージョン上げると動かなくなるという話がまぁまぁきそう)

目指すところ

複数のRubyバージョンでrspecを回すことで古いRubyでも問題なく動作することを継続的に確認し、安全にgemのバージョンアップを行う地盤を作る。
ついでに github action に載せ替える

小さいながらもOSS的な観点を持って開発をする(古いバージョンへ配慮したコードの書き方etc)
=> ゆくゆくはOSSにしてもいいかなという気もしている

結果

github actionをつかうと簡単にできました

.github/workflows/rspec.yml
name: rspec

on:
  - push

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        ruby-version: ['head', '3.1', '3.0', '2.7', '2.6', '2.5']
    steps:
      - uses: actions/checkout@v2
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby-version }}
          bundler-cache: true
      - run: bundle exec rspec

スクリーンショット 2022-06-11 11.19.58.png

ポイント

  • matrix でruby-versionを複数設定することで複数のケースでCIを回す
  • ruby/setup-ruby@v1ruby-version${{ matrix.ruby-version }} を指定することで実行するRubyのバージョンを変える

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0