CI 流水线
CI 在每次推送到 main 分支和每个拉取请求时运行。它使用智能作用域检测来跳过仅文档或原生代码更改时的昂贵作业。
作业概览
| 作业 | 目的 | 运行时机 |
|---|---|---|
docs-scope | 检测仅文档更改 | 始终运行 |
changed-scope | 检测哪些区域更改(node/macos/android) | 非文档 PR |
check | TypeScript 类型检查、lint、格式化 | 非文档更改 |
check-docs | Markdown lint + 损坏链接检查 | 文档更改时 |
code-analysis | LOC 阈值检查(1000 行) | 仅 PR |
secrets | 检测泄露的密钥 | 始终运行 |
build-artifacts | 构建 dist 一次,与其他作业共享 | 非文档、node 更改 |
release-check | 验证 npm 包内容 | 构建后 |
checks | Node/Bun 测试 + 协议检查 | 非文档、node 更改 |
checks-windows | Windows 特定测试 | 非文档、node 更改 |
macos | Swift lint/构建/测试 + TS 测试 | 带有 macos 更改的 PR |
android | Gradle 构建 + 测试 | 非文档、android 更改 |
失败快速顺序
作业按顺序排列,以便廉价检查在昂贵作业运行之前失败:
docs-scope+code-analysis+check(并行,约 1-2 分钟)build-artifacts(受上述阻塞)checks、checks-windows、macos、android(受构建阻塞)
运行器
| 运行器 | 作业 |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | 大多数 Linux 作业,包括作用域检测 |
blacksmith-16vcpu-windows-2025 | checks-windows |
macos-latest | macos、ios |
本地等效命令
pnpm check # 类型检查 + lint + 格式化
pnpm test # vitest 测试
pnpm check:docs # 文档格式 + lint + 损坏链接
pnpm release:check # 验证 npm 包