什么事持续集成?
持续集成(CI)是一种实践,可以让团队在持续的基础 上收到反馈并进行改进,不必等到开发周期后期才寻找和修复缺陷。通俗一点儿说,就是指对于开发人员的每一次代码提交,
都自动地把Repository中所有代码Check out到一个空目录,并且自动运行所有Test Case。如果成功则接受这次提交,否则告诉所有人,这是一个失败的Revision。
常用的持续集成服务器工具:Hudson
Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,
持续集成的好处包括下面这些:
1 减少风险
----尽早发现缺陷并修复缺陷
-----尽早估量软件质量
-----尽早排除假设通过在一个纯净的环境中,用同样的脚本和过程构建和测试软件,开发人员可以减少假设:是否使用了不正确的第三方的库,是否使用了不同的环境参数等。
2 减少重复的过程
----任何时候都可以执行一致的流程;
----每个开发过程的步骤都是依次执行的;在构建脚本,将依次执行编译,自动测试等动作。
-----在版本控制库中,当代码提交发生时,构建过程自动执行。
通过减少在重复性工作上的劳动力,让开发工程师做更多有价值的工作。
3 产生可部署的软件
持续集成可以让项目组在任一点上及时提交可以安装的软件包。这是持续集成最可看见的一个益处。我们可以无休止地讨论改善软件质量和减少风险,但是对用户或者客户来说,可以安装的软件包是最切实可行的
4 使得项目更加透明
5 建立项目信心
什么阻止团队使用持续集成?
1 用于维护持续集成的费用比较高这通常是一个被误导的错误的理解,如论你是否使用持续集成,你依然需要集成,构建,测试,部署等工作。管理一个强壮的持续集成的系统比管理手动的过程更加高效率。
2 太多的变更
一些开发组织需要改变已有的开发习惯和过程。
3 太多失败的构建
当开发人员不做个人构建之后,就将变更的代码提交到版本控制库,从而导致太多的构建失败。
4 额外的软件和硬件成本
持续构建需要独立的集成构建主机和持续集成软件等,这些需要额外的成本。