什么是持续集成
持续集成指的是频繁的将代码集成到主干中,持续集成为目的,让产品可以快速迭代,保证质量在到达主干之前,必须自动化测试,只要一个测试用例失败,不可集成(规避成本和时间)
持续集成的流程
提交
流程的第一步,是开发者向代码仓库提交代码。所有后面的步骤都始于本地代码的一次提交
测试(第一轮)
代码仓库对 commit 操作配置了钩子(hook),只要提交代码或者合并进主干,就会自动化测试
构建
通过第一轮测试,代码就可以合并进主干,就算可以交付了;
交付后,就先进行构建(build),再进入第二轮测试;
所谓构建,指的是将源码转换为可以运行的实际代码,比如安装依赖,配置各种资源(样式表、JS脚本、图片)等等
测试(第二轮)
构建完成,就要进行第二轮测试。如果第一轮已经涵盖了所有测试内容,第二轮可以省略,当然,这时构建步骤也要移到第一轮测试前面
部署
过了第二轮测试,当前代码就是一个可以直接部署的版本(artifact)。将这个版本的所有文件打包(tar filename.tar * )存档,发送到生产服务器
回滚
一旦当前版本发生问题,就要回滚到上一个版本的构建结果。最简单的做法就是修改一下符号链接,指向上一个版本的目录。
持续集成的组成要素
一个自动的构建过程, 从检测代码,编译,测试,结果、测试全部都是自动完成
一个代码存储库,需要版本控制软件来保障代码的可维护性,一般使用SVN/GIT
一般使用码云Gitee国内的github/一般搭建私有仓库/
一个持续集成服务器,jenkins完成
开发------SVN/GIT-----ci/cd编译、构建、部署------测试环境-----运维(迁移【数据迁移】按亿为单位 以PB级别)生产环境
优势
降低风险、修复代价少
健康的检测
减少重复工作
提供部署单元包便于测试工程师单元测试
提高质量