Skip to main content

CI 管道

CI 在每次推送至 main 和每個拉取請求時執行。它使用智慧範圍限定來在只有無關區域變更時跳過昂貴的工作。

工作概觀

工作目的執行時機
preflight文件範圍、變更範圍、金鑰掃描、工作流程稽核、產品相依性稽核始終;非文件變更時僅限 node 稽核
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 後跟隨建置
checksNode 測試 + PR 上的協議檢查;推送時的 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. 推送至 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

本地等價物

pnpm check          # 型別 + lint + 格式化
pnpm test           # vitest 測試
pnpm check:docs     # 文件格式 + lint + 中斷連結
pnpm release:check  # 驗證 npm pack