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

CIパイプライン

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

ジョブ概要

ジョブ目的実行されるタイミング
preflightドキュメントのみの変更、変更されたスコープ、変更された拡張機能を検出し、CIマニフェストをビルドするdraftではないpushとPRで常に実行
security-fast秘密鍵の検出、zizmorによるワークフロー監査、本番依存関係の監査draftではないpushとPRで常に実行
build-artifactsdist/とControl UIを一度ビルドし、下流ジョブ向けに再利用可能なアーティファクトをアップロードするNode関連の変更
checks-fast-coreバンドル済み/plugin-contract/protocolチェックなどの高速なLinux正当性レーンNode関連の変更
checks-fast-extensionschecks-fast-extensions-shardの完了後に拡張機能シャードレーンを集約するNode関連の変更
extension-fast変更されたバンドル済みプラグインのみを対象にした集中テスト拡張機能の変更が検出された場合
checkCIにおけるメインのローカルゲート: pnpm checkpnpm build:strict-smokeNode関連の変更
check-additionalアーキテクチャ、境界、import-cycleガードに加えて、Gateway watch regression harnessNode関連の変更
build-smokeビルド済みCLIのスモークテストと起動メモリのスモークNode関連の変更
checksより重いLinux Nodeレーン: 完全なテスト、チャネルテスト、push時のみのNode 22互換性Node関連の変更
check-docsドキュメントのフォーマット、lint、リンク切れチェックドキュメントが変更された場合
skills-pythonPythonベースのSkillsに対するRuff + pytestPython Skills関連の変更
checks-windowsWindows固有のテストレーンWindows関連の変更
macos-node共有のビルド済みアーティファクトを使用するmacOS TypeScriptテストレーンmacOS関連の変更
macos-swiftmacOSアプリ向けのSwift lint、ビルド、テストmacOS関連の変更
androidAndroidのビルドおよびテストマトリクスAndroid関連の変更

フェイルファスト順序

ジョブは、高コストなものが実行される前に低コストなチェックが失敗するように順序付けされています。
  1. preflightが、そもそもどのレーンを存在させるかを決定します。docs-scopechanged-scopeのロジックは、このジョブ内のステップであり、独立したジョブではありません。
  2. security-fastcheckcheck-additionalcheck-docsskills-pythonは、より重いアーティファクトジョブやプラットフォームマトリクスジョブを待たずにすばやく失敗します。
  3. build-artifactsは高速なLinuxレーンと並行して実行され、共有ビルドの準備ができしだい下流コンシューマーが開始できるようにします。
  4. その後、より重いプラットフォームおよびランタイムレーンが分岐します: checks-fast-corechecks-fast-extensionsextension-fastcheckschecks-windowsmacos-nodemacos-swiftandroid
スコープ判定ロジックはscripts/ci-changed-scope.mjsにあり、src/scripts/ci-changed-scope.test.tsのユニットテストでカバーされています。 別のinstall-smokeワークフローは、独自のpreflightジョブを通じて同じスコープスクリプトを再利用します。これは、より狭いchanged-smokeシグナルからrun_install_smokeを計算するため、Docker/install smokeはインストール、パッケージング、コンテナ関連の変更に対してのみ実行されます。 pushでは、checksマトリクスにpush時のみのcompat-node22レーンが追加されます。pull requestでは、このレーンはスキップされ、マトリクスは通常のテスト/チャネルレーンに集中したままになります。

ランナー

ランナージョブ
blacksmith-16vcpu-ubuntu-2404preflightsecurity-fastbuild-artifacts、Linuxチェック、ドキュメントチェック、Python Skills、android
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos-nodemacos-swift

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

pnpm check          # 型チェック + lint + フォーマット
pnpm build:strict-smoke
pnpm check:import-cycles
pnpm test:gateway:watch-regression
pnpm test           # vitestテスト
pnpm test:channels
pnpm check:docs     # ドキュメントのフォーマット + lint + リンク切れ
pnpm build          # CIのartifact/build-smokeレーンが関係する場合にdistをビルド