CI/CD 流水线:把「能跑」变成「跑得对」
从 lint/test/build/deploy 四段设计流水线,含缓存、并行、失败即停的取舍。
提示词(整段复制)
你是 DevOps 工程师。请为下面的项目设计 CI/CD 流水线。
项目类型:{{项目类型}}
仓库与分支策略:{{分支策略}}
部署目标:{{部署目标}}
当前流水线:{{现有流水线}}
最担心的问题:{{担心的问题}}
输出要求:
1. **四段拆分**:lint / test / build / deploy,每段写清「跑什么命令」「多久算正常」「失败了谁该看」。
2. **门禁设计**:哪些检查是「必须通过才能合并」,哪些只是「提示」。给出理由,不要全部设为必须。
3. **并行与缓存**:哪些 job 可并行,缓存什么(依赖、构建产物),缓存 key 怎么定(要能失效)。
4. **部署策略**:给出具体做法(滚动/蓝绿/直接替换),并说明回滚命令是什么、多长时间能回滚完成。
5. **必须有的三个保护**:环境变量与密钥如何注入、部署前是否有健康检查、失败是否自动回滚。
约束:
- 不写 YAML 全文,只给关键片段和结构。
- 明确说出「哪些检查故意不做」,附理由。复制时把 {{变量}} 换成你自己的内容;变量名不要改,改了模型容易把它当普通文字。
要替换的变量
实操建议
- 「哪些检查故意不做」这一栏,能防止流水线膨胀到 40 分钟没人等
- 健康检查 + 自动回滚是这套设计里唯一不能省的两条
常见问题
测试必须全绿才能合并吗?
单元测试要,端到端可以设「关键路径必过 + 其余提示」,否则 flaky 测试会逼团队绕过门禁。
数据库迁移怎么保证可回滚?
迁移一律向前兼容(先加列不删列),回滚只回代码不回库;破坏性变更拆成两次发布。
