4

使用詹金斯或哈德森我想創建與叉構建的管道和連接點,例如:詹金斯(哈德森) - 並行之間管理依賴構建

 job A 
    / \ 
job B job C 
    |  | 
job D  | 
    \ /
    job E 

我想創建任意series-parallel graphs像這使得詹金斯有了調度的自由,只要有一個從機可用,就可以並行執行B/D和C.

Join Plugin在B執行後立即加入。 Build Pipeline Plugin不支持fork/join點。不知道這是可能的與油門併發構建插件(或不推薦使用鎖定&鎖存插件);如果是這樣,我無法弄清楚如何。一種解決方案可能是用Apache Ivy指定構建依賴關係並使用Ivy插件。但是,我的作業都是Makefile C/C++/shell腳本作業,我沒有常青藤的經驗來驗證這是否可行。

在Jenkins中指定並行作業及其依賴關係的最佳方式是什麼?

回答

6

有一個Build Flow plugin滿足這個非常需要。它定義了一個用於指定並行作業的DSL。你的例子可能是這樣寫的:

build("job A") 
parallel (
    { 
     build("job B") 
     build("job D") 
    }, 
    { 
     build("job C") 
    } 
) 
build("job E") 

我剛剛發現它,它正是我所期待的。

2

有一種解決方案可能適合您。它要求所有版本都以單一作業開始,並以每個鏈條末尾的一系列作業結束;在你的圖表中,「工作A」將是開始工作,工作C和D將是終止工作。

有工作創建指紋文件。在這個例子中,作業A可以啓動多個構建鏈,B/D和C.同樣在工作A上,通過Promotions Plugin添加促銷活動,其標準是成功完成相繼的工作 - 在本例中爲C和D.作爲促銷的一部分,包括最終工作的觸發器,在您的案例中工作E這可以通過Parameterized Trigger Plugin完成。然後,確保您在促銷標準中列出的每個作業都能指紋相同的文件並獲得相同的指紋;我使用Copy Artifact Plugin來確保每次都獲得完全相同的文件。

+0

謝謝!我還沒有試過促銷插件與參數化觸發器的組合。我會給它一個鏡頭。已經使用帶指紋的Copy Artifact Plugin。 – 2012-02-03 20:52:46

+0

工程就像一個魅力。指紋需要將作業E標記爲A的下游作業。我不知道可以使用指紋識別。高度讚賞。 – 2012-02-03 21:41:48

相關問題