メインコンテンツへスキップ

CI Pipeline

CIはmainへのすべてのpushと、すべてのpull requestで実行されます。スマートなスコープ判定を使って、変更が無関係な領域だけの場合は高コストなジョブをスキップします。

ジョブ概要

Job目的実行されるタイミング
preflightdocsのみの変更、変更されたスコープ、変更されたextensionsを検出し、CI manifestを構築draftではないpushとPRで常に実行
security-fast秘密鍵検出、zizmorによるworkflow監査、本番依存関係の監査draftではないpushとPRで常に実行
build-artifactsdist/とControl UIを一度ビルドし、下流ジョブ向けの再利用可能artifactsをアップロードNode関連の変更
checks-fast-corebundled/plugin-contract/protocolチェックなどの高速Linux正当性レーンNode関連の変更
checks-fast-extensionschecks-fast-extensions-shard完了後にextension shardレーンを集約Node関連の変更
extension-fast変更されたbundled pluginsのみを対象にした集中テストextensionの変更が検出された場合
checkCIにおけるメインのローカルgate: pnpm checkpnpm build:strict-smokeNode関連の変更
check-additionalアーキテクチャおよび境界ガードと、gateway watch回帰ハーネスNode関連の変更
build-smokeビルド済みCLIのスモークテストと起動時メモリスモークNode関連の変更
checksより重いLinux Nodeレーン: フルテスト、channelテスト、およびpush専用のNode 22互換性Node関連の変更
check-docsdocsのフォーマット、lint、broken-linkチェックdocsが変更された場合
skills-pythonPythonベースのSkills向けRuff + pytestPython-skill関連の変更
checks-windowsWindows固有のテストレーンWindows関連の変更
macos-node共有のビルド済みartifactsを使用するmacOS TypeScriptテストレーンmacOS関連の変更
macos-swiftmacOS app向けのSwift lint、build、testsmacOS関連の変更
androidAndroidのbuildおよびtest matrixAndroid関連の変更

Fail-Fastの順序

ジョブは、高コストなものが走る前に低コストなチェックが失敗するように順序付けされています。
  1. preflightが、どのレーンをそもそも存在させるかを決定します。docs-scopechanged-scopeのロジックは、このジョブ内のstepであり、独立したジョブではありません。
  2. security-fastcheckcheck-additionalcheck-docsskills-pythonは、より重いartifactおよびplatform matrixジョブを待たずに素早く失敗します。
  3. build-artifactsは高速Linuxレーンと並行して実行されるため、下流の利用側は共有buildの準備ができ次第開始できます。
  4. その後、より重いplatformおよびruntimeレーンが分岐します: checks-fast-corechecks-fast-extensionsextension-fastcheckschecks-windowsmacos-nodemacos-swiftandroid
スコープロジックはscripts/ci-changed-scope.mjsにあり、src/scripts/ci-changed-scope.test.tsのunit testsでカバーされています。 別のinstall-smoke workflowは、独自のpreflightジョブを通じて同じスコープスクリプトを再利用します。これは、より狭いchanged-smokeシグナルからrun_install_smokeを計算するため、Docker/install smokeはinstall、packaging、container関連の変更に対してのみ実行されます。 pushでは、checks matrixにpush専用のcompat-node22レーンが追加されます。pull requestではこのレーンはスキップされ、matrixは通常のtest/channelレーンに集中したままになります。

Runners

RunnerJobs
blacksmith-16vcpu-ubuntu-2404preflightsecurity-fastbuild-artifacts、Linux checks、docs checks、Python skills、android
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos-nodemacos-swift

ローカルでの対応コマンド

pnpm check          # types + lint + format
pnpm build:strict-smoke
pnpm test:gateway:watch-regression
pnpm test           # vitest tests
pnpm test:channels
pnpm check:docs     # docs format + lint + broken links
pnpm build          # CI artifact/build-smokeレーンが関係する場合にdistをbuild