Branch-fix verdict パイプライン
コントリビューターが提供したブランチフィックス Docker イメージの Contract v1 verdict をキャプチャし、 デプロイ済みの元の verdict と並べてサイドバイサイド比較を提供する
workflow_dispatchGitHub Actions ワークフロー。
ワークフローは
.github/workflows/branch-fix-verdict.yml
に配置されている。
5 行の呼び出し例
実行ページには Markdown 比較サマリーがレンダリングされ、キャプチャした verdict は
branch-fix-verdict-<slug>-<run_id> という名前のワークフローアーティファクトとして
ダウンロードまたはプログラム的なフェッチ用にアップロードされる。
インプット
Verdict セマンティクス(リマインダー)
reproduced はこの実行でアップストリームバグが再現されたことを意味する。
unreproduced は再現されないことを意味する。
完全な説明は Contract v1: Verdict セマンティクス
を参照。
元の verdict が reproduced のレシピに対して、成功した branch-fix は verdict を
unreproduced に反転させることが期待される。元の verdict がすでに unreproduced
(アップストリームの修正検知イベントを追跡するセンチネルページ)のレシピに対しては、
コントリビューターはこのワークフローをほとんど必要としない。
アーティファクト
ワークフローは 30 日保持のディレクトリアーティファクトを
branch-fix-verdict-<slug>-<run_id> という名前でアップロードする。
バンドルには以下が含まれる:
R.3 比較ページ UI はこのバンドル構造を正確に消費する。 このようにファイルに名前を付けることで、R.2 が R.3 のプログラミング対象となる ワイヤーフォーマットにコミットする。
比較サマリー
ワークフローは $GITHUB_STEP_SUMMARY に Markdown テーブルを書き込む
(実行ページで確認できる):
続いて expected_verdict アサーションの「期待通り」/ 「期待と不一致」を
1 行で記述する。Markdown サマリーはワークフロー実行ページ上の at-a-glance
ビューだ。サイドバイサイド比較サーフェスが必要なら、ワークフローのアーティファクト
zip を 比較ページ に file-drop または paste で渡す。
どちらにしてもアーティファクトが真実のソースだ。
このパイプラインがしないこと
- branch-fix イメージのビルド。 コントリビューターはランナーがプルできるレジストリに 自分でビルドして公開することが期待される。イメージはこのパイプラインの入力境界だ。
- Layer 1 (WASM) 再現の検証。 Layer 1 の verdict はブラウザによってページ内で ライブ生成される。スワップできる Docker イメージは存在しない。
- ホスト型ランナーでの Layer 3 (rr replay) 再現の検証。
GitHub ホスト型 Ubuntu ランナーは
rr replayを駆動できない。 Layer 3 branch-fix 検証には CPUID フォールティングを公開する セルフホストランナーが必要だ。 - プライベートレジストリへの認証。 v1 では提供されたイメージ参照が 匿名でプル可能であることを前提とする。
関連情報
- 比較ページ — このパイプラインのアーティファクトバンドルを 消費する R.3 のサイドバイサイド UI(file-drop、URL パラメータ、JSON paste の 3 経路)。
- Contract v1 — このパイプラインが出力・消費する verdict サーフェス。
verdict.schema.json— バンドルの両エントリが検証に使用するスキーマ。- Consumer workflow — コンシューマーリポジトリの CI で Vivarium レシピを検証するための兄弟再利用可能ワークフロー。
- Layer 2 カタログ
—
inputs.slugに使用できるスラッグ。