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ワークフロー”name: rigoron: [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をインストールして実行します。
Rigorバージョンのピン留め
Section titled “Rigorバージョンのピン留め”上記のワークフローは実行時の最新のrigortypeをインストールします。バージョンをピン留め——CIを再現可能に保つ——には、以下のいずれかを選択します:
CI専用Gemfile(推奨)
Section titled “CI専用Gemfile(推奨)”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: 2updates: - package-ecosystem: bundler directory: /.github/rigor schedule: interval: weeklyピン留めしたgem install
Section titled “ピン留めしたgem install”ワークフローでgem install rigortype -v "0.1.15"を実行します。余分なファイルなしでよりシンプルですが、Dependabotはrun:ステップ内のバージョンを認識しないため、ピンの更新は手動になります。
コンテナイメージ
Section titled “コンテナイメージ”Ruby 4.0とRigorが組み込まれたスタンドアロンイメージがGHCRに公開されています。Rubyツールチェーンのないランナーに適しています——プロジェクトを/srcにマウントします:
docker run --rm -v "$PWD:/src" ghcr.io/rigortype/rigor checkrigorがイメージのエントリーポイントなので、サブコマンドとフラグはイメージ名の後に続きます。明示的なタグでバージョンをピン留めします——ghcr.io/rigortype/rigor:0.1.15。
すでにNixを実行しているCIでは、flakeがRuby 4.0をクロージャに含むパッケージとしてRigorを公開しています——ランナーに他のものが何もない完全にハーメティックな実行です:
nix run github:rigortype/rigor#rigor -- checkこのページの背景にある配布モデルについてはADR-27を参照してください。
© 2026 TypedDuck. Licensed under CC BY-SA 4.0.