Ci 导读

CI 跑哪些检查、按什么顺序失败、本地怎么复现

每次 push 或 PR 都会触发 CI,但只有改动相关的 job 才会跑,省时间。先看“Fail-Fast Order”理解为什么有些 job 先失败、有些后跑——这决定了你等结果时的优先级。最容易忽略的是 `preflight` 不是独立 job,它负责判断哪些 lane 该出现,scope 逻辑在 `scripts/ci-changed-scope.mjs` 里,改 scope 规则要同步更新测试。

先讲这一页到底在解决什么

CI 跑哪些检查、按什么顺序失败、本地怎么复现

每次 push 或 PR 都会触发 CI,但只有改动相关的 job 才会跑,省时间。先看“Fail-Fast Order”理解为什么有些 job 先失败、有些后跑——这决定了你等结果时的优先级。最容易忽略的是 `preflight` 不是独立 job,它负责判断哪些 lane 该出现,scope 逻辑在 `scripts/ci-changed-scope.mjs` 里,改 scope 规则要同步更新测试。

原文共 35 节,先看 Start Here 路径:/ci 查看官方原文

第一站

🧪 先跑便宜的,再跑贵的

CI 的逻辑很朴素:先把最省钱的门槛拦住,再让重活上场。

docs-scope / changed-scope

像先问“你改的是不是文档?”、“到底改了哪块地板?”

check / secrets

像先做类型、格式和漏密钥检查。

build-artifacts / release-check

像最后才把成品装箱验货。

第二站

🚦 Fail-fast 的意思,就是“早点坏早点停”

这不是脾气差,而是省时间。

第一层

cheap gates 并行跑,先把明显不对的提交拦住。

第二层

再跑节点、macOS、Android、Windows 这些重活。

第三层

主分支再做发布和兼容性检查。

第三站

🧭 本地等价命令,就是把工厂流程搬回桌面

官方把 `pnpm check`、`pnpm test`、`pnpm release:check` 这些列出来,是方便你本地先过一遍。

pnpm check

像先做体检和整理。

pnpm test

像跑一轮单元和集成测试。

pnpm release:check

像检查打包箱子里装的是不是你要的东西。