首页 > 代码库 > 浅谈持续集成

浅谈持续集成

持续集成是什么?

持续集成是一种做事不断持续,代码不断集成的工作思想,它是一种节奏。用的好,它可以指导你节约一些不必浪费的时间;用得不好,它会让你浪费时间。

持续集成解决了什么问题?

我们可以通过反面来回答这个问题,当我们经常遇到以下这些情况时,可以考虑用持续集成来思考能否解决

  • 辛苦开发了一周,两周后合并上线时,发现大量的代码冲突!!!
  • 辛苦开发了半个月后,产品体验时觉得设计不够完美,尼玛,架构底层需要重新设计!!!
  • 开发埋头coding,测试,产品眼巴巴的等着,等到全部功能开发完成,部署好才能知道开发的功能的效果!!!
  • 开发都半个月了,都不知道开发的完成进度有多少了,只能相信开发口头承诺快了快了...
  • 这个开发的编码过程顺不顺利?是很高效的每天都有一定的产出还是总是提交了有问题的代码不停的再折腾,程序老编译失败?不知道!!!
  • 一开始的设计错误的,不能兼容线上关键业务,但是有人知道么,还是等到上线前再由测试来确定?

持续集成的目标是什么?

快速,高频率,自动构建,部署,测试并反馈。

将冲突提前,将效果提前,将测试提前,将进度,开发质量体现出来。

持续集成的过程是怎样的?

持续集成的基础基础基础是代码的完整性和可测性!而这得从代码管理的方式说起~~

主干开发方式:

阶段一:项目开始构建阶段

技术分享

分支开发方式:

阶段二:项目稳定运营后,项目小,开发人员少,合并次数(持续集成)少时:

技术分享

阶段三:项目模块越来越多,开发小组越来越多,各种负责不同模块的开发,合并频率高,引发持续集成失败率越来越高,影响持续测试时:

技术分享

阶段四:模块化,将整个项目拆分模块,减少相互依赖,根据模块来迁开发分支,持续集成。

技术分享

 

 一个经典的持续集成过程:

  1. 开发者将代码提交到SVN前,必须进行本地测试。尽量保证不会破坏持续集成服务器的构建过程。
  2. 开发者每天进行多次提交:小步前进会大大减少服务器构建失败的概率,并使修复失败构建的时间大大缩短。
  3. 持续集成在一台服务器上不断运行:保证在稳定的环境中进行测试
  4. 所有测试必须全部通过:保证软件现有的功能不被破坏并且没有引入新的缺陷。

持续集成(jenkins)的步骤是怎样的?

  1. 代码更新
  2. 编译
  3. 自动打包、部署
  4. 自动化测试
  5. 结果报告

 

浅谈持续集成