CI パイプライン

CI は main へのプッシュとすべてのプルリクエストで実行されます。スマートなスコープ判定により、関係のない領域のみが変更された場合はコストの高いジョブをスキップします。

ジョブ一覧

ジョブ目的実行タイミング
docs-scopeドキュメントのみの変更を検出常時
changed-scope変更された領域を検出(node/macos/android/windows)ドキュメント以外の変更時
checkTypeScript 型チェック、lint、フォーマットドキュメント以外、node の変更時
check-docsMarkdown lint + リンク切れチェックドキュメントの変更時
secretsシークレットの漏洩検出常時
build-artifactsdist を1回ビルドし release-check と共有main へのプッシュ、node の変更時
release-checknpm pack の内容を検証main へのプッシュ後のビルド完了時
checksPR では Node テスト + プロトコルチェック、push では Bun 互換テストドキュメント以外、node の変更時
compat-node22サポート最小 Node ランタイムの互換性確認main へのプッシュ、node の変更時
checks-windowsWindows 固有のテストドキュメント以外、windows 関連の変更時
macosSwift lint/build/test + TS テストmacOS の変更を含む PR 時
androidGradle ビルド + テストドキュメント以外、android の変更時

フェイルファストの順序

コストの安いチェックが先に失敗するよう、ジョブの実行順序が設計されています。

  1. docs-scope + changed-scope + check + secrets(並列実行、安価なゲートを先に)
  2. PR: checks(Linux Node テストを2シャードに分割)、checks-windowsmacosandroid
  3. main へのプッシュ: build-artifacts + release-check + Bun 互換テスト + compat-node22

スコープ判定のロジックは scripts/ci-changed-scope.mjs にあり、src/scripts/ci-changed-scope.test.ts でユニットテストされています。

ランナー

ランナージョブ
blacksmith-16vcpu-ubuntu-2404スコープ検出を含むほとんどの Linux ジョブ
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacosios

ローカルでの相当コマンド

pnpm check          # 型チェック + lint + フォーマット
pnpm test           # vitest テスト
pnpm check:docs     # ドキュメントのフォーマット + lint + リンク切れチェック
pnpm release:check  # npm pack の検証