持续集成的概念
持续集成是“极限编程”提出的理论,持续集成的关键是代码构建的完全自动化,读取源代码、编译、连接、测试,整个创建过程都应该自动完成。对于一次成功的创建,要求在这个自动化过程中的每一个步都不能出错,而最重要的一步是测试,只有最后通过测试的创建才是成功的创建。
cc(cruisecontrol)我不是第一次接触,在我负责第一个项目中就启用此工具,当时版本比较低,研究了几天就简单配好了,难点在于一般文档都是介绍cvs的,而我们公司用的是SVN,因此研究svn的配置花费了1点时间。我非常感谢掌晨雪编写的《持续集成实践之CruiseControl》文档,对我起了很大的帮助!
cruisecontrol2.7是最新的版本,这个版本和以前相比,更加方便,并且增加了一个新的功能Dashboard,详情可以参看CruiseControl官方网站http://cruisecontrol.sourceforge.net/。这个版本还提供一个简单的例子,下载cruisecontrol-bin-2.7.2.zip并解压。在里面会找到projects、logs目录,在以前是没有的,这些都是要自己手动创建的,现在这个版本方便多了。在这两个目录下可以发现connectfour范例目录。
来一下cruisecontrol的实现机制吧,如下图所示:
Build Loop:
持续集成最重要的特征之一就是自动话,而CC的Build Loop就是为支持自动化而设计的,Build Loop也是CC的核心。
Build Loop从字面上理解就是循环创建的意思,CC提供了一个daemon进程,该进程根据配置的时间间隔(也可以指定某个具体时间)读取CC配置文件并进行循环创建(build cycle),每次CC都会重新加载配置文件config.xml(修改了配置文件不用重新启动CC)。
Build Loop过程中所做的工作如下:访问源码控制系统,查看是否有代码被修改,如果有,获取源码的新版本,并根据配置对源代码进行一次Build,创建一个日志文件,最后项开发人员通知build的结果,活动图如下:
因为Build Loop是根据配置文件的内容来进行的,根据上面Build Loop所做的工作,我们大概可以猜出配置信息主要应该包括:定时创建的时间和源码库访问信息,创建任务信息(如指定Ant文件),记录日志(创建结果),通知(通知内容可以订制)。
CC配置文件:
CC配置文件范connectfour范例如下:
子元素详情可以参看官方文档的说明。
这里只介绍几个常用的子元素:
下面是一个modificationset的例子:
未完成,待续...
posted on 2008-04-24 10:40
小胡子 阅读(665)
评论(0) 编辑 收藏 引用 所属分类:
技术知识