CC config.xml官方說明書
基本結構
<cruisecontrol> <project name="ProjectA"> ... </project> <project name="ProjectB"> ... </project> </cruisecontrol>
- <cruisecontrol>:為configuration的根元素,包含了其他剩下的設定元素
- <project>:針對每個project設定的基本元素,在config.xml中可以含有多個此元素
- name屬性:name="indentifer":必備,其所指定的值為此project獨特的名字
Project設定
就從Cruise Control所附的config.xml來解釋吧:
- <listener>:listener plugins的容器元素
- <currentbuildstatuslistener file="path/filename">:所指定的檔案必須包含路徑,而這個檔案將會記錄目前的project狀態及上一次build的狀態改變。在同一個資料夾下也會儲存每一次build結束後所產生的HTML snippet,以供查看。
- <bootstrappers>:bootstrappers在build開始之前都會執行,不論build是否需要,除非該次build被暫停了。而每個bootstrapper都是獨立的,所以可以一次擁有多個bootstrapper。
- <antbootstrapper>:使用ant作為自訂的bootstrapper。以下是所帶的屬性:
- anthome:指定Ant所安裝的資料夾。在Cruise Control就有附帶Ant了。
- antworkingdir:指定Ant所要工作的資料夾,為Project程式碼的放置資料夾。
- buildfile:指定Ant的build script。如果有設置antworkingdir則不用指定路徑,直接給指定檔名即可,若此屬性沒有設置,則預設為build.xml。
- target:設置bootstrapper要執行的Ant target(類似makefile的target)。
- timeout:秒數。如果build的執行秒數超過指定的值,該build就會被停止。
- <modificationset>:指定要檢查有改變的檔案,可以避免檢查所有檔案。其帶的屬性有:
- quietperiod:秒數。避免在啟動build時,有人還正在更改檔案。如果在指定時間內發現檔案還有更改的話,CC進入休眠狀態,等到該期間過了後,會再重新檢察一次還有沒有更動。
- <filesystem>:回傳自從上一次build有改變的檔案,都會被標記為被"User"這位使用者所改變。
- folder:必要。指定要被掃描改變的最上層資料夾,其下面的所有檔案都會被檢察。
- <git>:如果管理原始碼的工具為git的話用此element比較好。會檢察git中有改變的檔案,如果沒有任何更動的話,則這次的build跳過。
- LocalWorkingCopy:必要。指定git repo所在的資料夾。
- <schedule>:指定build的間隔還有build所用的工具
- interval:間隔秒數。預設為300(5分鐘),可指定範圍為1到31536000(1年)。
- <ant>:使用Ant作為project building的工具。
- anthome:指定Ant所安裝的目錄
- buildfile:指定Ant所需的build script,需要指名路徑。
- timeout:秒數。如果超過指定時間,此次build就會被停止。
- <log>:指定CC所產生的log file放置地點。透過merge元素,可以指定將build過程所產生的xml file merge到CC的build log。
- <merge>:通常用在JUnit test所產生的結果,可以將這些結果merge到CC的Build log file裡,可以得到一個全面的log file,透過瀏覽器可以方便檢閱。
- <publishers>:在build結束後,無論結果為成功或是失敗,都會執行。
- <artifactspublisher>:複製build成功後所產生的產品(例:jar檔)到指定的目錄下。
- dest:必要,指定要被複製到的母目錄。CC會以build成功的時間點命名目錄,裡面會複製該次build所產生的產品。
- dir:或file:必要,二擇一。dit是指定複製一整個目錄,file是指定特定檔案。都必須指明路徑。
- <htmlemail>:寄送內嵌html語法的結果郵件給指定使用者。
- username:寄送者的信箱
- password:寄送者的信箱密碼
- mailhost:mail server address for sending email。像是gmail為smtp.gmail.com
- mailport:mail server port。
- usessl:使用SSL加密連接伺服器,需要指定相對應的mailport,像gamil為465
- returnaddress:必要。會顯示在"寄送者"欄位的郵件地址。
- <always address="email">:每次build後必定傳送的對象。
- <failure address="email">:只有在build失敗時才傳送的對象。
參考資料
Cruise Control(一)-介紹Continuous Integration
Cruise Control(二)-架設Cruise Control及概觀
Cruise Control番外篇-Ant build file介紹
沒有留言:
張貼留言