持續整合工具CC的一些經驗

技術小阿哥發表於2017-11-27
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,如需轉載請自行聯絡原作者


相關文章