Skip to content

CI Pipeline

CI 在每次推送到 main 和每個 Pull Request 時執行。它使用智慧範圍機制,在僅有不相關區域變更時跳過耗時的工作。

Job用途執行時機
preflightDocs scope, change scope, key scan, workflow audit, prod dependency audit總是;僅在非文檔變更時進行 node-based audit
docs-scope偵測僅文檔變更總是
changed-scope偵測哪些區域變更 (node/macos/android/windows)非文檔變更
checkTypeScript 類型檢查, lint, 格式化非文檔, node 變更
check-docsMarkdown lint + 壞連結檢查文檔變更
secrets偵測洩漏的機密總是
build-artifacts建構 dist 一次,與 release-check 共用推送到 main,node 變更
release-check驗證 npm pack 內容建構後推送到 main
checksPR 上進行 Node 測試 + 協定檢查;Push 時進行 Bun 相容性測試非文檔, node 變更
compat-node22最低支援的 Node 執行環境相容性推送到 main,node 變更
checks-windowsWindows 特定測試非文檔, windows 相關變更
macosSwift lint/build/test + TS 測試包含 macos 變更的 PR
androidGradle build + 測試非文檔, android 變更

Job 排序時讓低成本檢查在高成本任務執行前先失敗:

  1. docs-scope + changed-scope + check + secrets (平行,低成本優先)
  2. PR: checks (Linux Node 測試拆分為 2 個分片), checks-windows, macos, android
  3. 推送到 mainbuild-artifacts + release-check + Bun 相容性 + compat-node22

範圍邏輯位於 scripts/ci-changed-scope.mjs 中,並由 src/scripts/ci-changed-scope.test.ts 中的單元測試覆蓋。 同一個共享的範圍模組也透過更狹隘的 changed-smoke 閘道驅動獨立的 install-smoke 工作流程,因此 Docker/安裝煙霧測試僅針對安裝、打包和容器相關的變更執行。

執行器工作
blacksmith-16vcpu-ubuntu-2404大多數 Linux 工作,包括範圍偵測
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacosios
Terminal window
pnpm check # types + lint + format
pnpm test # vitest tests
pnpm check:docs # docs format + lint + broken links
pnpm release:check # validate npm pack