CI/CD 流水线
不用 Jenkins,用 shell 把流水线的原理做出来
중급 · 课时 30 · 实验 10
课程大纲
构建自动化
- 可复现的构建要放在最前面 reading
- 用 shell 做一条三段流水线 lab
- 测验:可复现的构建 quiz
测试门禁
- 门禁这件事,就是定下「拦什么」的标准 reading
- 做一道拦住合并的门禁 lab
- 测验:测试门禁 quiz
发布策略:蓝绿与金丝雀
- 蓝绿与金丝雀,各自拿什么去换 reading
- 蓝绿切换与金丝雀分析 lab
- 测验:发布策略 quiz
制品与晋级
- 开发环境过了、生产却不过的真正原因 reading
- 标签没有变,生产环境跑的却是另一个镜像 lab
- 测验:制品与晋级 quiz
产出相同字节的构建
- 用哈希命名并不等于构建可复现 reading
- 同一份源码构建两次,摘要却不一样 lab
- 测验:产出相同字节的构建 quiz
缓存键的设计
- 缓存的成败全在于键怎么设计 reading
- 锁文件只改了一行,缓存却把旧依赖搬了回来 lab
- 测验:缓存键的设计 quiz
测试切分
- 切分能提速,但结论可能因此改变 reading
- 把分片数调大之后,原本失败的测试竟然通过了 lab
- 测验:测试切分 quiz
失败分类与缩小原因范围
- 红灯并不都是同一种红灯 reading
- 十个红色构建,却没人看过一行日志 lab
- 测验:失败分类与缩小原因范围 quiz
流水线中的机密处理
- 机密会留在日志和镜像层里 reading
- 以为已经删掉的令牌,却从镜像层和提交历史里原样冒了出来 lab
- 测验:流水线中的机密处理 quiz
基于主干的开发与分支保护
- 合并之后还是绿灯吗 reading
- 在分支上还是绿灯,合并之后立刻变成了红灯 lab
- 测验:基于主干的开发与分支保护 quiz