CI/CD 基本概念
CI/CD 是什么
CI: 持续集成(Continuous Integration)
高频地、自动化地将个人开发的代码集成到开发主线中
开发人员提交新代码后,立刻进行构建、(单元)测试。根据测试结果,确定新代码和原有代码能否正确地集成在一起
CD
持续交付(Continuous Delivery)
在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的“类生产环境”中
- 尽快交付给 QA 人员
- 在“类生产环境” 中测试
- 保证有一个“随时可发布” 的版本
- 部署可以手动
持续部署(Continuous Deployment)
在持续交付的基础上,能够自动化地将软件部署在真实生产环境
- 尽快交付给客户
- 体系敏捷开发思想
意义和价值
- 体系敏捷开发思想
- 频繁、自动化、可重复。流程像管道,代码像水
- 快速失败,尽早出现问题,尽早解决
- 不能保证 bug free,所以提高发布频率,降低单词发布风险
- 快速交付用户价值,拥抱市场变化
CI/CD 的实现
CI 的实现
保证协作质量
- 代码风格检查
- 版本规范
- git 分支规范
- 自动化单元测试、端到端测试
保证失败可追溯
- 测试结果通知责任人
- changelog 记录
- code review 机制
CD 的实现
- 持续交付
- 多种级别的测试环境
- QA 团队功能测试的快速响应
- 自动化测试覆盖率的检查
- 发布流程的标准化