Skip to main content

CI 流水线

CI 会在每次推送到 main 以及每个拉取请求时运行。它使用智能范围判定,在仅文档或本地代码有变更时跳过高耗时任务。

任务概览

任务目的运行时机
docs-scope检测仅文档变更总是运行
changed-scope检测哪些部分变更(node/macos/android/windows)非文档类 PR
checkTypeScript 类型检查、代码风格检查、格式化推送到 main 或节点相关变更的 PR
check-docsMarkdown 代码风格检查 + 断链检查文档变更时
code-analysis行数阈值检查(1000 行)仅 PR
secrets检测泄露的秘钥总是运行
build-artifacts构建 dist,一次构建结果可供其他任务共享非文档类,节点变更时
release-check验证 npm 包内容构建之后
checksNode/Bun 测试 + 协议检查非文档类,节点变更时
checks-windowsWindows 专属测试非文档类,Windows 相关变更
macosSwift 代码风格检查/构建/测试 + 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

本地等价命令

pnpm check          # 类型检查 + 代码风格 + 格式化
pnpm test           # vitest 测试
pnpm check:docs     # 文档格式 + 代码风格 + 断链检查
pnpm release:check  # 验证 npm 包