CI 流水线
CI 流水线
CI 会在每次推送到 main 与每个 Pull Request 上运行。它使用“变更范围检测”来避免在仅改文档或仅改原生代码时触发昂贵的任务。
任务概览
| Job | 目的 | 触发条件 |
|---|---|---|
docs-scope | 检测是否仅文档变更 | 总是运行 |
changed-scope | 检测变更范围(node/macos/android) | 非 docs-only 的 PR |
check | TypeScript types、lint、format | 非 docs-only 变更 |
check-docs | Markdown lint + 断链检查 | 文档发生变更 |
code-analysis | 代码行数阈值检查(1000 行) | 仅 PR |
secrets | 检测密钥泄露 | 总是运行 |
build-artifacts | 构建一次 dist,供后续任务复用 | 非 docs-only 且 node 变更 |
release-check | 校验 npm pack 内容 | build 之后 |
checks | Node/Bun 测试 + 协议检查 | 非 docs-only 且 node 变更 |
checks-windows | Windows 专项测试 | 非 docs-only 且 node 变更 |
macos | Swift lint/build/test + TS tests | PR 且包含 macOS 变更 |
android | Gradle build + tests | 非 docs-only 且 android 变更 |
Fail-Fast 顺序
任务顺序按“先便宜后昂贵”的原则组织,让便宜的检查尽早失败:
docs-scope+code-analysis+check(并行,约 1–2 分钟)build-artifacts(依赖上一步)checks、checks-windows、macos、android(依赖 build)
Runner
| Runner | Jobs |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | 大多数 Linux 任务(含 scope 检测) |
blacksmith-16vcpu-windows-2025 | checks-windows |
macos-latest | macos、ios |
本地等价命令
pnpm check # types + lint + format
pnpm test # vitest tests
pnpm check:docs # docs format + lint + broken links
pnpm release:check # validate npm pack