天天看點

上手Cruise Control

<b>1        Cruisecontrol的概述</b>

CruiseControl是一種持續內建過程的架構,包括了郵件通知,ant和各種源碼控制工具的插件。并提供web接口,用于檢視目前和以前的build的結果。

<b>2       Cruisecontrol的安裝</b>

2.1       下載下傳CruiseControl

CruiseControl目前提供的是源碼,需要我們手工進行建立。 

2.2       建立安裝目錄

 把CruiseControl源碼拷貝到特定目錄該目錄為INSTALL_DIR,該目錄下有三個子目錄docs,main,reporting。

2.3       設定環境變量

 将INSTALL_DIR\main\bin添加到系統的環境變量PATH中去。

2.4       建立工作目錄

 建立工作目錄為D:\CC-WORKSPACE,下面稱之為WORK_DIR

 WORK_DIR\logs          CC的build loop過程中産生日志所在目錄WORK_DIR\artifacts     CC在build loop過程中産生需要儲存的一些檔案所在目錄          

 這步不是官方文擋要求的,但建構良好的目錄結構對于開發和配置都非常重要。

<b>3       Cruisecontrol的配置</b>

3.1   reporting部分的配置

reporting部分的配置分三個步驟,修改jsp,建立override.properties,打包reporting部分檔案并在weblogic上部署。

<b>3.1.1   修改jsp檔案</b>

修改INSTALL_DIR\reporting\jsp\buildresults.jsp檔案,将

&lt;%@ taglib uri="/WEB-INF/cruisecontrol-jsp11.tld" prefix="cruisecontrol"%&gt;

修改為

&lt;%@ taglib uri="/WEB-INF/cruisecontrol-jsp12.tld" prefix="cruisecontrol"%&gt;

<b>3.1.2   建立override.properties</b>

在INSTALL_DIR\reporting\jsp 目錄下建立override.properties檔案,

内容如下:

user.log.dir=D:\\CC-WORKSPACE\\logs

user.build.status.file=status.txt

cruise.build.artifacts.dir=D:\\CC-WORKSPACE\\artifacts

<b>3.1.3   打包web檔案</b>

執行INSTALL_DIR\reporting\jsp目錄下的build.bat檔案,執行成功後在dist目錄下找到cruisecontrol.war檔案,并将該檔案部署到weblogic上,Weblogic部署部分我就不寫了。

3.2   Mian部配置設定置

Mian部配置設定置隻有一步,就是建立config.xml檔案。

在工作目錄(work_dir)下建立兩個檔案congfig.xml和startcc.bat檔案,config.xml檔案是必須的,startcc檔案是可選,因為startcc.bat純粹是為了啟動cc友善而建立的檔案。

Startcc.bat檔案内容如下:

cruisecontrol -port 8000

很短,但使用起來很友善,輕按兩下一下就啟動cc 了。;-)

config.xml是由cc規定一些xml标簽組成,我對一些常用的标簽說明一下,具體還要去看cc提供的官方文檔(INSTALL_DIR/doc)。

l        &lt;project/&gt; 定義一個項目

l        &lt;bootstrappers&gt;

     &lt;currentbuildstatusbootstrapper file="logs\first\status.txt" /&gt;

&lt;/bootstrappers&gt;

定義build狀态的日志檔案。

l        &lt;modificationset requiremodification="false" quietperiod="60" &gt;

      &lt;vss ssdir="D:\vss\win32"             //注意:ssdir中不能有空格

         login="fengtianhao,fengtianhao"     //使用者明,密碼

         vsspath="/devtest"                //項目路徑

         serverPath="D:\Program Files\vss" //就是包含srcsafe.ini的目錄

         dateformat="yy-MM-dd"         //vss的日期格式

         timeformat="HH:mm"           //vss的時間格式

         /&gt;

           &lt;/modificationset&gt;

           檢查vss檔案系統是否有變化,如果有,則在web頁面顯示變化過的檔案名。

l        &lt;schedule interval="60" &gt;

定義build時間間隔為60秒

&lt;ant buildfile="build.xml" antscript="D:\ant\bin\ant.bat" target="deploy.app" time="1916" antworkingdir="D:\new97_prj\NEW97_PRJ" uselogger="false"&gt;

      &lt;jvmarg arg="-server" /&gt;

      &lt;jvmarg arg="-Xms64m" /&gt;

      &lt;jvmarg arg="-Xmx256m" /&gt;

&lt;/ant&gt;

指定ant 的相關資訊。buildfile定義build所需要的build.xml檔案,antscript指定ant的啟動腳本,antworkingdir指定ant的工作,target指定本次的build的目标,time指定build目标的運作時間(time也可以換成multiple,兩者隻能取其一)。&lt;jvmarg&gt;指定cc運作時的最大和最小記憶體。

      &lt;/schedule&gt;

l        &lt;log dir="logs\first"&gt;

       &lt;merge dir="jsp\target\testresults"/&gt;

    &lt;/log&gt;

   log标簽的dir屬性指定日志目錄。merge标簽的dir屬性指定需要被合并檔案的路徑,指定路徑下的檔案将會與日志檔案合并,一般需要合并的檔案是測試結果檔案,這需要注意的地方是指定路徑下的檔案都要被合并到日志檔案中,也就是說,為了不影響cc的日志檔案的準确性,在生成每次的測試結果之前需要先把上次的測試結果删除。

l        &lt;publishers&gt;

       &lt;artifactspublisher dest="artifacts\first" dir="jsp\target\testresults"/&gt;

      &lt;/publishers&gt;

 publishers的功能主要是釋出build結果,例如郵件通知等,我們主要用到的功能是artifactspublisher所定義的功能,也就是cc在build過程中産生的檔案釋出。在merge标簽中我們已經知道,測試日志是cc在build過程中産生的檔案,而且我們每次我們都要删除上次的測試結果,這裡cc提供了一種機制讓你儲存測試結果,就是利用artifactspublisher标簽。

 Dest定義目标目錄,dir定義檔案存儲的起始目錄。所有的檔案會被cc從dir目錄copy到dest目錄。被copy到dest目錄的檔案會放在以目前時間命名的檔案夾中。這裡dir定義的是測試日志檔案的所在目錄。

繼續閱讀