持續整合工具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>
團隊在選擇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,如需轉載請自行聯絡原作者
相關文章
- 整合持續整合工具
- 持續整合持續部署持續交付_持續整合與持續部署之間的真正區別
- Hudson:持續整合工具的安裝、使用
- 持續整合、持續部署、持續交付、持續釋出
- 持續整合、持續交付、持續部署簡介
- ET·ci —持續整合驗證平臺
- 對持續整合、 持續交付、持續部署和持續釋出的介紹
- 持續整合工具TeamCity快速入門
- 使用開源工具進行持續整合開源工具
- Yahoo!Screwdriver:可擴充套件的持續整合工具套件
- iOS 持續整合iOS
- 談談持續整合,持續交付,持續部署之間的區別
- 持續整合工具之Jenkins安裝部署Jenkins
- 持續整合工具之Jenkins基礎使用Jenkins
- 安全開發之持續整合相關工具
- 淺談持續整合(CI)、持續交付(CD)、持續部署(CD)
- Jenkins持續整合Jenkins
- 淺談持續整合的理解以及實現持續整合,需要做什麼?
- SAP開源的持續整合-持續交付的解決方案
- html5經驗記錄持續更新HTML
- Vue 開發經驗小記(持續更新)Vue
- 移動端經驗總結(持續更新)
- 以持續整合工具實現DevOps之禪dev
- 持續整合工具Hudson安裝方法(非常簡單)
- 質量之匙:持續整合工具與實踐
- 小程式的持續整合方案
- 從持續整合到持續交付——DockerCloud概覽DockerCloud
- 通過Docker容器執行持續整合/持續部署Docker
- 持續化整合工具 Jenkins 在 Ubuntu 中安裝JenkinsUbuntu
- 持續整合配置之Nuget
- Taro 小程式持續整合
- 持續整合JenkinsBlueOcean初探Jenkins
- Jenkins持續整合配置Jenkins
- 微服務化的基石——持續整合微服務
- 使用流水線外掛實現持續整合、持續部署
- 我們正在路上—從持續整合到持續釋出
- 以 egg.js 為例的持續整合(CI)、持續部署(CD)JS
- 一些常用的命令(持續更新)