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 规则要同步更新测试。
第一站
🧪 先跑便宜的,再跑贵的
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像检查打包箱子里装的是不是你要的东西。