CruiseControl(CC)是老牌的開源持續內建工具,支援衆多的插件,文檔也比較全,普通的持續內建應用使用CC是可以滿足要求的,CC已經比較久沒有更新了。
團隊在選擇CI工具時可以考慮使用新的CI工具:hudson
比較常見的問題:
1.CruiseControl可以用來做什麼語言的CI?
CC本身是用java編寫的,對于java本身的支援也比較好,當然它可以做其他語言的ci工具,如:cpp, python等,cc基于ant做了很好的整合,本身的核心功能并不多,更多的都是插件完成。如果你想完
全抛開CC基于ant也可以搭建出一個自動建構伺服器,隻是沒有前台UI。
2.與配置庫的內建,常見的配置庫軟體(VSS, CVS, SVN, ClearCase)都有插件支援,svn是目前主流的代碼配置管理系統
cc與svn的內建:
A. 在ci server上安裝了svn用戶端,在project下svn checkout代碼
B. 配置cc project代碼修改檢測
<modificationset quietperiod="30">
<svn LocalWorkingCopy="projects/${project.name}/src"/>
</modificationset>
如果代碼未變動,cc不會執行整個建構過程。
C. 代碼更新有兩種辦法:
1)通過exec svn up實作代碼更新
2)使用svnant
3.調用分布式的測試伺服器腳本
cc對分布式的支援很複雜,建議直接使用ant-contrib,實作分布式伺服器之間的調用
調用方:
<remoteant machine="1.2.3.4" port="17000">
<runtarget target="auto_test">
</runtarget>
</remoteant>
執行方:
<antserver port="17000" />
<target name="auto_test">
<echo message="auto_test running" />
</target>
4. 删除預設的Demo項目connectfour
*删除connectfour.ser
*删除projects/connectfour
*删除config.xml <project name="connectfour">節點
*删除logs/connectfour
5. 解決郵件中文亂碼
<htmlemail charset="GB2312"
6. 郵件内容的定制
<htmlemail
css="webapps/cruisecontrol/css/cruisecontrol.css"
xsldir="webapps/cruisecontrol/xsl"
logdir="logs/${project.name}"
主要是修改xsl檔案,cc的日志是标準的xml檔案,通過xsl轉換為html。
其中修改比較多的是errors.xml,可以過濾掉一些不需要顯示的message
7. 單元測試
單元測試實際上都是由ant的內建,java語言的支援最好,直接可用junit/junitreport
python可以用pyunit
<py-test>
<fileset dir="${python.src.dir}">
<include name="**/*_test.py"/>
</fileset>
</py-test>
本文轉自 念槐聚 部落格園部落格,原文連結:http://www.cnblogs.com/haochuang/archive/2012/05/07/2487853.html,如需轉載請自行聯系原作者