コントリビューティング

CI パイプライン

CI は main へのすべてのプッシュとすべてのプルリクエストで実行されます。ドキュメントやネイティブコードのみが変更された場合、高コストなジョブをスキップするスマートスコーピングを使用します。

ジョブ概要

ジョブ目的実行条件
docs-scopeドキュメントのみの変更を検出常時
changed-scopeどの領域が変更されたか検出 (node/macos/android/windows)ドキュメント以外のPR
checkTypeScript 型チェック、リント、フォーマットmain へのプッシュ、または Node 関連の変更を含むPR
check-docsMarkdown リント + 壊れたリンクチェックドキュメントが変更された場合
code-analysisLOC 閾値チェック (1000行)PRのみ
secrets漏洩したシークレットを検出常時
build-artifactsdist を一度ビルドし、他のジョブと共有ドキュメント以外、Node 変更あり
release-checknpm pack 内容の検証ビルド後
checksNode/Bun テスト + プロトコルチェックドキュメント以外、Node 変更あり
checks-windowsWindows 固有のテストドキュメント以外、Windows 関連の変更あり
macosSwift リント/ビルド/テスト + TS テストmacOS 変更を含むPR
androidGradle ビルド + テストドキュメント以外、Android 変更あり

フェイルファストの順序

ジョブは、高コストなジョブが実行される前に安価なチェックが失敗するように順序付けられています:

  1. docs-scope + code-analysis + check (並列実行、〜1-2分)
  2. build-artifacts (上記の完了待ち)
  3. checks, checks-windows, macos, android (ビルド完了待ち)

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

ランナー

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

ローカル同等コマンド

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

Pi 開発ワークフロードキュメントハブ