持续集成(Continuuous integration,CI)

持续集成(Continuuous integration,CI)

本文为这篇文章笔记:持续集成是什么? - 阮一峰的网络日志

  • 定义:频繁地(一天多次)将代码集成到主干。

  • 好处:

    • 快速发现错误。每完成一点更新,就集成到主干。
    • 防止分支大幅偏离主干。
  • 目的:让产品可以快速迭代,同时还能保持高质量。

  • 措施:代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

  • 流程:

    • 提交代码(commit)
    • 第一轮测试
      • 自动化,通过代码仓库的钩子(hook)
      • 至少跑一遍单元测试(针对函数或模块的测试)
    • 构建(将源码转换为可运行的实际代码)

      • 代码合并进主干,可以交付
      • 构建工具
        • Jenkins
        • Travis
    • 第二轮测试

      • 全面测试,单元测试和集成测试都要跑
      • 有条件,也要做端对端测试(从用户界面直达数据库的全链路测试)
      • 自动化为主,少数无法自动化的,人工跑。
    • 部署
    • 回滚(如果有问题)

持续交付(Continuous delivery,CD)

  • 定义:频繁地将软件的新版本,交付给质量团队或用户,以供评审。如果评审通过,就进入生产阶段。

持续部署(Continuous deployment CD)

  • 定义:代码通过评审以后,自动部署到生产环境。
0%