CI 流水线

CI 流水线

CI 会在每次推送到 main 与每个 Pull Request 上运行。它使用“变更范围检测”来避免在仅改文档或仅改原生代码时触发昂贵的任务。

任务概览

Job目的触发条件
docs-scope检测是否仅文档变更总是运行
changed-scope检测变更范围(node/macos/android)非 docs-only 的 PR
checkTypeScript types、lint、format非 docs-only 变更
check-docsMarkdown lint + 断链检查文档发生变更
code-analysis代码行数阈值检查(1000 行)仅 PR
secrets检测密钥泄露总是运行
build-artifacts构建一次 dist,供后续任务复用非 docs-only 且 node 变更
release-check校验 npm pack 内容build 之后
checksNode/Bun 测试 + 协议检查非 docs-only 且 node 变更
checks-windowsWindows 专项测试非 docs-only 且 node 变更
macosSwift lint/build/test + TS testsPR 且包含 macOS 变更
androidGradle build + tests非 docs-only 且 android 变更

Fail-Fast 顺序

任务顺序按“先便宜后昂贵”的原则组织,让便宜的检查尽早失败:

  1. docs-scope + code-analysis + check(并行,约 1–2 分钟)
  2. build-artifacts(依赖上一步)
  3. checkschecks-windowsmacosandroid(依赖 build)

Runner

RunnerJobs
blacksmith-16vcpu-ubuntu-2404大多数 Linux 任务(含 scope 检测)
blacksmith-16vcpu-windows-2025checks-windows
macos-latestmacosios

本地等价命令

pnpm check          # types + lint + format
pnpm test           # vitest tests
pnpm check:docs     # docs format + lint + broken links
pnpm release:check  # validate npm pack