メインコンテンツまでスキップ

街づくり12日目・第四章|CIの仕事場を役割ごとに分ける

· 約2分
KOGAMAI JUNCTION DEV

役割ごとに分離されたCIの通り道

2026年8月26日、街づくり12日目・第四章。

testを速く回す仕事と、DEVへ接続する仕事と、公開物を届ける仕事は、必要な権限が違います。KOGAMAI JUNCTIONでは、全部を一つの万能runnerへ集めず、用途別のself-hosted runnerとして分けています。

品質検査へ秘密を渡さない​

Pull Requestのformatter、型検査、contract test、buildはsecret-freeで実行します。変更されたcodeを検査するjobへ、運用Environmentやprivate networkの権限を渡しません。

一方、deploy、backup、read-backのような処理は、review済みmain、exact commit、明示入力、保護されたEnvironmentを要求します。通常CIが混雑したことを理由に、権限境界を省略した経路へ自動で切り替えません。

一つのjobを一つの実行環境へ​

現在の品質runnerはone-job ephemeralを基本にします。jobが終わったfilesystemを別repositoryへ使い回さず、対象repository、runner名、labelの完全一致をAPIでread-backします。異常終了で残るoffline recordは、状態と経過時間を再確認してexact IDだけをcleanupします。

generation leaseとfencingを使うVM lifecycleは、将来の特権runner向け設計です。まだ現在の品質runnerが備える機能としては扱いません。

これにより「runnerがonlineだった」だけで安全と判断せず、どのsourceを、どの役割で、どのjobが実行したかを追跡できます。

greenの意味を一つにしない​

PR CIのgreen、merge後main CIのgreen、運用workflowの成功、runtime read-back、人間のgameplay確認は別の証拠です。途中の一つを最終完了へ読み替えないことで、codeは正しいがruntimeが違う、という状態も安全に停止できます。

第三章・DEV control recoveryへ戻る · 第五章・privacyを守る観測へ進む