天天看點

持續內建工具CC的一些經驗

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,如需轉載請自行聯系原作者