CIパイプライン
CIは、mainへのすべてのプッシュとすべてのプルリクエストで実行されます。ドキュメントやネイティブコードのみが変更された場合、コストのかかるジョブをスキップするスマートスコープを使用します。
ジョブの概要
| ジョブ | 目的 | 実行タイミング |
|---|---|---|
docs-scope | ドキュメントのみの変更を検出 | 常時 |
changed-scope | 変更された領域を検出(node/macos/android) | ドキュメント以外のPR |
check | TypeScript型、リント、フォーマット | ドキュメント以外の変更 |
check-docs | Markdownリント + リンク切れチェック | ドキュメント変更 |
code-analysis | LOCしきい値チェック(1000行) | PRのみ |
secrets | 漏洩した秘密を検出 | 常時 |
build-artifacts | distを一度ビルド、他のジョブと共有 | ドキュメント以外、node変更 |
release-check | npm packの内容を検証 | ビルド後 |
checks | Node/Bunテスト + プロトコルチェック | ドキュメント以外、node変更 |
checks-windows | Windows固有のテスト | ドキュメント以外、node変更 |
macos | Swiftリント/ビルド/テスト + TSテスト | macos変更を含むPR |
android | Gradleビルド + テスト | ドキュメント以外、android変更 |
フェイルファースト順序
ジョブは、安価なチェックが高価なものの実行前に失敗するように順序付けされています:
docs-scope+code-analysis+check(並列、約1-2分)build-artifacts(上記でブロック)checks、checks-windows、macos、android(ビルドでブロック)
ランナー
| ランナー | ジョブ |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | ほとんどのLinuxジョブ、スコープ検出を含む |
blacksmith-16vcpu-windows-2025 | checks-windows |
macos-latest | macos、ios |
ローカル同等コマンド
bashpnpm check # 型 + リント + フォーマット pnpm test # vitestテスト pnpm check:docs # ドキュメントフォーマット + リント + リンク切れ pnpm release:check # npm packを検証