<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>
CruiseControl:简称CC,持续集成工具,主要提供了基于版本管理工具(如CVS)感知变化或每天定时的持续集成,并提供持续集成报告、Email、Jabber等等方式通知相关负责人,其要求是需要进行日构建的项目已编写好全自动的项目编译脚本(可基于Maven或Ant)。
在这里以一个项目来简要的说说cc的使用,通常项目对于日构建的类型的需求分为两种:
1、每天的定时自动集成。
2、感知版本管理工具中的变化而进行自动集成。
项目对于日构建的目标通常为:
1、感知版本管理工具的变化,如发现有变化,则进行集成。
2、调用项目编译脚本进行项目集成。
3、合并项目编译脚本产生的单元测试、功能测试的日志。
4、将集成报告发布至网站中。
5、将集成的结果以邮件、jabber等等方式通知相应的负责人。
基于上面的要求,项目编译脚本采用Maven,版本管理工具采用CVS,持续集成工具采用CC,假设已编写好了基于Maven的项目编译脚本,CruiseControl的脚本如下编写:
<?xml version=1.0 encoding=UTF-8?>
<cruisecontrol><br><project name="demo" buildafterfailed="true"><br><!--每次检测是否有变化时先运行此处 --><br><bootstrappers><br><currentbuildstatusbootstrapper file="logs/demo/buildstatus.txt/"><br></currentbuildstatusbootstrapper></bootstrappers></project></cruisecontrol>
在这里以一个项目来简要的说说cc的使用,通常项目对于日构建的类型的需求分为两种:
1、每天的定时自动集成。
2、感知版本管理工具中的变化而进行自动集成。
项目对于日构建的目标通常为:
1、感知版本管理工具的变化,如发现有变化,则进行集成。
2、调用项目编译脚本进行项目集成。
3、合并项目编译脚本产生的单元测试、功能测试的日志。
4、将集成报告发布至网站中。
5、将集成的结果以邮件、jabber等等方式通知相应的负责人。
基于上面的要求,项目编译脚本采用Maven,版本管理工具采用CVS,持续集成工具采用CC,假设已编写好了基于Maven的项目编译脚本,CruiseControl的脚本如下编写:
<?xml version=1.0 encoding=UTF-8?>
<cruisecontrol><br><project name="demo" buildafterfailed="true"><br><!--每次检测是否有变化时先运行此处 --><br><bootstrappers><br><currentbuildstatusbootstrapper file="logs/demo/buildstatus.txt/"><br></currentbuildstatusbootstrapper></bootstrappers></project></cruisecontrol>
<!--检测是否有变化,如有变化则开始集成 -->
<modificationset quietperiod="10"><br><!-- 基于cvs的检测 --><br><cvs localworkingcopy="demo/"><br></cvs></modificationset>
<modificationset quietperiod="10"><br><!-- 基于cvs的检测 --><br><cvs localworkingcopy="demo/"><br></cvs></modificationset>
<!-- 持续集成-->
<schedule interval="18"><br><!-- 项目的编译脚本 --><br><maven mavenscript="D:/tools/maven/bin/maven.bat<br"></maven> projectfile=demo/project.xml<br> goal=demo:build/><br></schedule>
<schedule interval="18"><br><!-- 项目的编译脚本 --><br><maven mavenscript="D:/tools/maven/bin/maven.bat<br"></maven> projectfile=demo/project.xml<br> goal=demo:build/><br></schedule>
<!--持续集成过程的日志记录以及需要合并的日志 -->
<log dir="logs/demo"><br><!-- 合并项目编译脚本中产生的单元、功能测试日志 --><br><merge dir="demo/target/test-reports/"><br></merge></log>
<log dir="logs/demo"><br><!-- 合并项目编译脚本中产生的单元、功能测试日志 --><br><merge dir="demo/target/test-reports/"><br></merge></log>
<!--持续集成后结果的公布 -->
<publishers><br><currentbuildstatuspublisher file="logs/demo/buildstatus.txt/"><br><!-- 发布持续集成的结果至网站中,此方法还不是最理想的 --><br><execute command="D:/tools/cc/reporting/jsp/build.bat" war></execute><br><!-- 邮件通知相关的负责人 --><br><email mailhost="smtp.yourdomain.com<br"></email> returnaddress=<a href="mailto:buildmaster@yourdomain.com">buildmaster@yourdomain.com</a><br> skipusers=true<br> reportsuccess=fixes<br> subjectprefix=[CruiseControl]<br> buildresultsurl=<a href="http://buildserver:8080/cruisecontrol/buildresults">http://buildserver:8080/cruisecontrol/buildresults</a>><br><failure address="<a" href="mailto:developers@yourdomain.com">developers@yourdomain.com /><br><success address="<a" href="mailto:developers@yourdomain.com">developers@yourdomain.com /><br><br></success></failure></currentbuildstatuspublisher></publishers>
关于CC 的脚本中xml的规范、cc的安装和运行请参考CruiseControl的官方网站:
cruisecontrol.sourceforge.net
<publishers><br><currentbuildstatuspublisher file="logs/demo/buildstatus.txt/"><br><!-- 发布持续集成的结果至网站中,此方法还不是最理想的 --><br><execute command="D:/tools/cc/reporting/jsp/build.bat" war></execute><br><!-- 邮件通知相关的负责人 --><br><email mailhost="smtp.yourdomain.com<br"></email> returnaddress=<a href="mailto:buildmaster@yourdomain.com">buildmaster@yourdomain.com</a><br> skipusers=true<br> reportsuccess=fixes<br> subjectprefix=[CruiseControl]<br> buildresultsurl=<a href="http://buildserver:8080/cruisecontrol/buildresults">http://buildserver:8080/cruisecontrol/buildresults</a>><br><failure address="<a" href="mailto:developers@yourdomain.com">developers@yourdomain.com /><br><success address="<a" href="mailto:developers@yourdomain.com">developers@yourdomain.com /><br><br></success></failure></currentbuildstatuspublisher></publishers>
关于CC 的脚本中xml的规范、cc的安装和运行请参考CruiseControl的官方网站:
cruisecontrol.sourceforge.net
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1695455