コンテンツにスキップ

CIでのRigor実行

RigorはRuby 4.0で動作します(Rigorのインストールを参照)。CIではこれが最初に述べておく価値のある1つの帰結をもたらします。このページの残りはそこから導かれます。

独立したジョブでRigorを実行する

Section titled “独立したジョブでRigorを実行する”

テストスイートとは別のCIジョブでRigorを実行してください——できればワークフローファイルも別にします。理由は具体的です: ruby/setup-rubyジョブのアクティブなRubyを設定します。テストジョブはプロジェクトが実行するRuby(多くの場合3.xバージョン、またはそのマトリックス)をプロビジョニングします。RigorはRuby 4.0が必要です。2番目のsetup-ruby呼び出しが最初のものを上書きするため、2つを同じジョブで共有することはできません。

独立したジョブはRigorにRuby 4.0のプロビジョニングが何とも競合しないクリーンなランナーを提供します。独立したワークフローファイルを使用すると、さらに独自のトリガー、並行性グループ、ステータスバッジを持ち——テストワークフローからアナライザーを分離できます。これはどちらにせよ良い実践です。

最小限のGitHub Actionsワークフロー

Section titled “最小限のGitHub Actionsワークフロー”
.github/workflows/rigor.yml
name: rigor
on: [push, pull_request]
jobs:
rigor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "4.0"
- run: gem install rigortype
- run: rigor check

これだけです: プロジェクトをチェックアウトし、Ruby 4.0をプロビジョニングし、Rigorをインストールして実行します。

上記のワークフローは実行時の最新のrigortypeをインストールします。バージョンをピン留め——CIを再現可能に保つ——には、以下のいずれかを選択します:

2行の.github/rigor/Gemfileをコミットします:

source "https://rubygems.org"
gem "rigortype", "~> 0.1"

そのGemfile.lockとともにコミットし、BUNDLE_GEMFILEを通じてRigorジョブに指定します:

jobs:
rigor:
runs-on: ubuntu-latest
env:
BUNDLE_GEMFILE: .github/rigor/Gemfile
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "4.0"
bundler-cache: true
- run: bundle exec rigor check

このGemfileはRigorジョブのみが読み込みます——アプリケーションの依存関係解決には決して入り込まず、コミットされたlockfileがRigorとその依存関係を再現可能な実行のためにピン留めします。通常のBundler GemfileなのでDependabotが最新に保てます: .github/dependabot.ymlでそのディレクトリにスコープされたbundlerエントリーを追加します:

version: 2
updates:
- package-ecosystem: bundler
directory: /.github/rigor
schedule:
interval: weekly

ワークフローでgem install rigortype -v "0.1.15"を実行します。余分なファイルなしでよりシンプルですが、Dependabotはrun:ステップ内のバージョンを認識しないため、ピンの更新は手動になります。

Ruby 4.0とRigorが組み込まれたスタンドアロンイメージがGHCRに公開されています。Rubyツールチェーンのないランナーに適しています——プロジェクトを/srcにマウントします:

Terminal window
docker run --rm -v "$PWD:/src" ghcr.io/rigortype/rigor check

rigorがイメージのエントリーポイントなので、サブコマンドとフラグはイメージ名の後に続きます。明示的なタグでバージョンをピン留めします——ghcr.io/rigortype/rigor:0.1.15

すでにNixを実行しているCIでは、flakeがRuby 4.0をクロージャに含むパッケージとしてRigorを公開しています——ランナーに他のものが何もない完全にハーメティックな実行です:

Terminal window
nix run github:rigortype/rigor#rigor -- check

このページの背景にある配布モデルについてはADR-27を参照してください。

© 2026 TypedDuck. Licensed under CC BY-SA 4.0.