【是什么】
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成,每次的集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而今早地发现集成错误。简单来说,就是持续的定时的在多个团队成员的工作中进行集成,并且给予反馈。
【为什么】
一般规模较小的项目,对外部系统的依赖和服务调用很小,对于软件的集成不是问题。但是随着软件复杂度的增加,对集成提出了更多的要求,持续集成的好处就体现出来了。
1、对重复的编译发布等操作进行抽象,减少重复过程
2、及早的发现各种冲突和错误,减少风险
3、任何时间、任何地点生成可部署的软件
【怎么做】
首先要有统一的代码库,服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。如果发现有代码更新,那么就从版本控制服务器下载最新的代码。等代码完全更新以后,调用自动化编译脚本 ,进行代码编译。然后运行所有的自动化测试,并且进行代码分析。如果其中任何一个步骤失败,就表示该build失败,持续集成服务器会给予相应的反馈。
每次代码提交之后,都会在持续集成服务器上触发一个定时构建,然后进行编译、部署。
【工具】
Jenkins是一个开源项目,提供了一种易于使用的持续集成系统。Jenkins的具体介绍见下篇博客。