2011-11-22 65 views
4

我有Jenkins設置爲不同的平臺建立XBMC圖像。我的系統需要大約6個小時來構建每個圖像,所以我更喜歡平行運行它們,一次只能運行2或3個圖像。這個問題是,如果他們不得不下載更新到模塊(比如linux內核或者sometihng),那麼並行的2樓或者3樓會同時下載,破壞下載(它們指向同一個文件夾)是否有可能在哈德遜/詹金斯錯開構建?

在jenkins/hudson中可以指定偏移嗎? (我知道你可以安排構建,以及使用一個項目完成後建立一個觸發器)喜歡的東西:

構建1:立即

構建2:開始後20數分鐘內就製作後1

構建3:開始20分鐘後構建2

我試圖尋找一個插件以及谷歌,但沒有運氣。我也知道我可以通過jenkins中的類cron調度功能進行調度,但是我的構建觸發器設置爲輪詢GIT repo以查找構建的更改,我不只是盲目調度。

回答

4

一種方法是選擇「高級」下的「安靜期」選項。
將它設置爲作業2的1200秒和作業3的2400秒。

這意味着作業1將在git中發現更改時立即排隊,作業2將以20分鐘的延遲進入隊列,工作3延遲了40分鐘。

+0

因此,即使設置爲每兩天輪詢一次更改,您是說通過將安靜期設置爲1200/2400秒,它仍會暫停第二個和第三個工作?這就是我正在尋找的 –

1

另一種方法是將作業做成某種構建流程(無論是使用構建流程插件還是通過說作業A的最後一項任務是運行作業B)。如果您可以將下載文件轉換爲自己的作業,那麼您可以將「下載」作業定義爲單線程,其餘作爲多線程。

這樣做只序列化需要序列化的內容。做一個「每二十分鐘」的事情將花費15分鐘的時間下載,並且在下載時會花費25分鐘的時間,並且會失敗(可能以難以調試的方式)。