Skip to main content

CI/CD 基本概念

CI/CD 是什么

CI: 持续集成(Continuous Integration)

高频地自动化地将个人开发的代码集成到开发主线

开发人员提交新代码后,立刻进行构建、(单元)测试。根据测试结果,确定新代码和原有代码能否正确地集成在一起

CD

持续交付(Continuous Delivery)

在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的“类生产环境”中

  • 尽快交付给 QA 人员
  • 在“类生产环境” 中测试
  • 保证有一个“随时可发布” 的版本
  • 部署可以手动

持续部署(Continuous Deployment)

在持续交付的基础上,能够自动化地将软件部署在真实生产环境

  • 尽快交付给客户
  • 体系敏捷开发思想

意义和价值

  • 体系敏捷开发思想
  • 频繁、自动化、可重复。流程像管道,代码像水
  • 快速失败,尽早出现问题,尽早解决
  • 不能保证 bug free,所以提高发布频率,降低单词发布风险
  • 快速交付用户价值,拥抱市场变化

CI/CD 的实现

CI 的实现

  • 保证协作质量

    • 代码风格检查
    • 版本规范
    • git 分支规范
    • 自动化单元测试、端到端测试
  • 保证失败可追溯

    • 测试结果通知责任人
    • changelog 记录
    • code review 机制

CD 的实现

  • 持续交付
    • 多种级别的测试环境
    • QA 团队功能测试的快速响应
    • 自动化测试覆盖率的检查
    • 发布流程的标准化