跳转到内容

CI Pipeline

CI 在每次推送到 main 和每个 Pull Request 时运行。它使用智能范围划分,在仅文档或原生代码发生变更时跳过昂贵的任务。

任务用途运行时机
docs-scope检测仅文档变更始终运行
changed-scope检测哪些区域发生变更(node/macos/android/windows)非文档 PR
checkTypeScript 类型检查、lint、格式化推送到 main,或包含 Node 相关变更的 PR
check-docsMarkdown lint + 断链检查文档发生变更
code-analysisLOC 阈值检查(1000 行)仅 PR
secrets检测泄露的密钥始终运行
build-artifacts构建一次 dist,与其他任务共享非文档且 node 发生变更
release-check验证 npm pack 内容构建之后
checksNode/Bun 测试 + 协议检查非文档且 node 发生变更
checks-windowsWindows 特定测试非文档且 windows 相关变更
macosSwift lint/构建/测试 + TS 测试包含 macos 变更的 PR
androidGradle 构建 + 测试非文档且 android 发生变更

任务按顺序排列,使廉价检查在昂贵检查运行前先失败:

  1. docs-scope + code-analysis + check(并行,约 1-2 分钟)
  2. build-artifacts(依赖上述任务)
  3. checkschecks-windowsmacosandroid(依赖构建)

范围逻辑位于 scripts/ci-changed-scope.mjs,单元测试在 src/scripts/ci-changed-scope.test.ts 中。

运行器任务
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