一、什么是持续集成(Continuous Integration)?
持续集成(CI)是一种软件开发实践,它倡导团队开发成员协同工作,有需要的时候就对代码进行集成,不必要等到软件开发后期才开始集成。通常,每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。
二、持续集成的原则
业界普遍认同的持续集成的原则包括:
1)需要版本控制软件保障团队成员提交的代码不会导致集成失败。常用的版本控制软件有 svn,Git, ClearCase 等;
2)开发人员必须及时向版本控制库中提交代码,也必须经常性地从版本控制库中更新代码到本地;
3)需要有专门的集成服务器来执行集成构建。根据项目的具体实际,集成构建可以被软件的修改来直接触发,也可以定时启动,如每半个小时构建一次;
4)必须保证构建的成功。如果构建失败,修复构建过程中的错误是优先级最高的工作。一旦修复,需要手动启动一次构建。
三、持续集成系统的组成
由此可见,一个完整的构建系统必须包括:
一个自动构建过程,包括自动编译、分发、部署和测试等。
一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。
一个持续集成服务器。本文中介绍的 Jenkins 就是一个配置简单和使用方便的持续集成服务器hudson/jenkins简介
四、Hudson/Jenkins简介
Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
Jenkins可以做到持续编译和发布软件项目,这使得开发者很容易把他们的改动集成到项目中,还让用户能更加便利的获取编译和测试版本;
一张图说明Hudson/Jenkins的作用
原先由项目经理做的事情现在由Hudson/Jenkins在做。