您好,登錄后才能下訂單哦!
作者:Tony Qu
CC.NET的配置文件位于安裝目錄的server目錄下,有個叫做ccnet.config的文件,只有配置了這個文件,CC.NET才能正常運行。
通過CCNetConfig我們可以學到很多關于ccnet.config的配置內容,首先來看一個非常重要的概念——觸發器。
值得注意的是,這里的觸發器都僅針對當前項目有效,這也是為什么這些trigger基本沒有target,比如說IntervalTrigger,所有的屬性都沒有提到觸發的對象,。
CC.NET提供了6種觸發器:
IntervalTrigger,顧名思義,就是每隔一定時間觸發任務的觸發器。
FilterTrigger不能單獨工作,而必須與其他Trigger一起使用,之所以叫FilterTrigger是因為它是用來過濾觸發條件,例如我們原本設置了一個IntervalTrigger,每5分鐘觸發一次,但我只希望這個IntervalTrigger只在工作時間觸發,那么我們就可以用FilterTrigger來限制IntervalTrigger的觸發時間為9:00 ~ 18:00。
MultiTrigger類似于WPF中的MultiTrigger,可同時執行多個觸發器,并對觸發器結果做And或Or操作。
ScheduleTrigger和Windows自帶的計劃任務的功能非常類似,可以在特定時間觸發任務。
ProjectTrigger是僅當指定的CC.NET項目build完成后才會觸發任務的觸發器。
UrlTrigger是僅當某個特定的Url頁面的內容發生變化時才會觸發任務的觸發器。
下面來舉個例子:
場景1:我希望設置一個daily build的觸發器,每天凌晨1:00觸發一次,僅工作日做,雙休日不做(不考慮節假日)。
由于是特定時間循環觸發,我們可以用ScheduleTrigger來實現,代碼如下:
<scheduleTrigger time="1:00" buildCondition="ForceBuild" name="ScheduledTask1"> <weekDays> <weekDay>Monday</weekDay> <weekDay>Tuesday</weekDay> <weekDay>Wednesday</weekDay> <weekDay>Thursday</weekDay> <weekDay>Friday</weekDay> </weekDays> </scheduleTrigger>
在CCNetConfig里面設置則如下圖所示:
場景2: 持續集成需要每隔一定時間觸發一次build,已確定之前的checkin都是可運行的,所以我們需要設定一個每周一到周五的工作時間(9:00 ~ 18:00)觸發,并且每隔15分鐘觸發一次的觸發器(不考慮時區、時差問題)。
這里我們需要使用IntervalTrigger+FilterTrigger,FilterTrigger是用于過濾時間的,即9:00 ~ 18:00。
<filterTrigger startTime="09:00" endTime="18:00"> <trigger type="intervalTrigger" seconds="600" /> <weekDays> <weekDay>Monday</weekDay> <weekDay>Tuesday</weekDay> <weekDay>Wednesday</weekDay> <weekDay>Thursday</weekDay> <weekDay>Friday</weekDay> </weekDays> </filterTrigger>
在CCNetConfig里面設置則如下圖所示:
場景3: 當項目A的build成功之后才觸發當前項目build(通常項目A是某個核心代碼庫,當前項目對其具有依賴性),由于是僅當成功才觸發,所以triggerStatus=Success
<triggers> <projectTrigger project="task2"> <triggerStatus>Success</triggerStatus> <innerTrigger type="intervalTrigger" seconds="1800" buildCondition="ForceBuild" /> </projectTrigger> </triggers>
在CCNetConfig里面設置則如下圖所示:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。