CruiseControl 是 CI 服務器的老者。它已經用了有五年多了,在許多方面, CruiseControl 服務器 已經成為持續集成實踐的同義詞。出于完全坦白的目的,我應當提到,我也是 CruiseControl 的多年的老用戶。
如果您從最后一次使用 CruiseControl 到現在已經有段時間,而且認為它的安裝和配置是個負擔,那么您可以看看最新版本,F有,有許多方式安裝 CruiseControl。例如,如果使用 Windows,會發現最簡單的方式是下載二進制可執行文件,然后運行它。不用擔心,還可以下載源代碼。
安裝之后,CruiseControl 預先配置了一個配置文件,輪詢 CVS 存儲庫并執行 Ant 構建腳本。同樣也不需要安裝 Web 服務器,因為 CruiseControl 也內嵌了 Jetty。
比起 Luntbuild 和 Continuum,CruiseControl 提供了對超過十種不同版本控制系統的支持。而且,CruiseControl 對這些工具中的許多定制命令也提供了支持。清單 1 是一個使用 CruiseControl config.xml 腳本輪詢 Subversion 存儲庫的示例:
清單 1. 通過 config.xml 文件輪詢存儲庫
<listeners> <currentbuildstatuslistener file="logs/${project.name}/status.txt"/> </listeners> <modificationset quietperiod="30"> <svn RepositoryLocation="http://www.qualitylabs.org/svn/ambientorb/trunk" username="bfranklin" password="G0Fly@Kite" /> </modificationset> |
當在版本控制系統(例如 Subversion)中發現修改時,可以很容易地配置 CruiseControl 去執行委托的構建腳本。例如,清單 2 演示了從 config.xml 調用 Ant 腳本,它指示 CruiseControl 每 60 秒鐘查詢 Subversion 存儲庫一次,并執行另一個 Ant 腳本。 委托的構建腳本(沒有顯示)刪除舊文件,從 Subversion 簽出最新的源代碼,并在代碼上運行項目的構建腳本。
清單 2. 執行 Ant 構建腳本
<schedule interval="60"> <ant anthome="apache-ant-1.6.5" buildfile="build-${project.name}.xml"/> </schedule> |
當設置了 CruiseControl 的這個方面并啟動服務器之后,可以訪問如圖 3 所示的 CruiseControl Web 控制板:
圖 3. CruiseControl 控制板

要接收最新構建的反饋,可以把 htmlemail
插件添加到清單 3 所示的 config.xml 腳本?梢杂 config.xml 文件配置更多反饋機制,例如發送文本消息、電子設備(通過 X10)、甚至即時消息。
清單 3. 用 CruiseControl 發送電子郵件
... <plugin name="htmlemail" buildresultsurl="http://${env.COMPUTERNAME}/cruisecontrol/buildresults/${project.name}" mailhost="${smtp.server}" username="${mail.username}" password="${mail.password}" returnaddress="${buildmaster.email}" returnname="${buildmaster.name}" subjectprefix="${project.name} build" xsldir="webapps/cruisecontrol/xsl" css="${reportdir}/cruisecontrol.css"/> ... <htmlemail> <always address="${buildmaster.email}"/> <failure address="${buildmaster.email}"/> </htmlemail> |
CruiseControl 提供了許多有用的特性,有強大的用戶社區,極具擴展性。與本文中評估的其他工具相比,有些開發人員覺得 CruiseControl 不太容易使用。而另一方面,有些開發人員則發現用 XML 腳本進行修改提供了更好的控制。
文章來源于領測軟件測試網 http://www.kjueaiud.com/