2010-02-15 68 views

回答

4

創建新作業時,通常可以指定必須構建上游項目才能開始此作業。

此選項在構建觸發器 - >在創建/修改作業時創建其他項目後構建

+0

我想同時啓動** Build1 **和** Build2 **。但是當** Build1 **和** Build2 **都完成時,我無法配置** Test1 **以啓動它。當** Build1 **或** Build2 **完成時,可以啓動** Test1 **。我對嗎? –

+0

您還需要檢查「高級項目選項」下的「上游項目正在構建時的塊構建」。如果Build1或Build2在隊列中,這將阻止構建Test1。 –

+0

我沒有這個選項。你用什麼版本的哈德森? –

2

我想你有幾個選擇。我的假設是,我們正在談論長時間運行的工作,否則我會把它們串起來作爲一個怪物工作(一個工作中的幾個構建步驟),並創建單獨的工作來分別運行它們。

如上所述,對於長時間運行的作業,請查看join plugin。作爲一個通用的參考資料,有一個頁面可以解釋爲什麼你想將測試工作與建築工作分開。見here

+0

Join插件是這裏的關鍵。 –

0

我正在運行Hudson版本1.346。

您可以在「構建觸發器」下查看'構建其他項目後構建'。

它說,「多個項目可以像指定‘ABC,DEF’」

所以,你應該能夠「build1中,BUILD2」添加到該字段爲Test1的配置。

+0

從'構建項目後構建'的幫助文本:*設置一個觸發器,以便在其他項目完成構建時爲此項目安排新構建。例如,在構建完成後,這對於運行廣泛的測試非常方便。* - 實質上,Test1將在構建一個或兩個構建完成時觸發,而不是在兩個構建完成後觸發。在這種情況下,您可能可以使用locks-and-latch插件來解決這個問題。 –

0

您可以保留Test1作爲獨立的作業,而不是構建的一部分。

當Build1和Build2完成時,Test1可以作爲下游構建啓動。 Test2可以是Test1的下游作業。

1

「Promoted Builds Plugin」可以是一個很好的解決方案:你可以配置一個主作業「Build」,除了啓動2個下游版本「Build1,Build2」(在後期製作操作中)。 然後,您必須添加一個升級過程「在下列下游項目成功構建時」選擇「Build1,Build2」,並具有「Test1」的關聯下游構建操作。 如果「Build1」和「Build2」構建成功(狀態爲STABLE),「Build」將被提升並且「Test1」將被排入隊列。 最後,您觸發Test2作爲Test1的後期構建操作。

但是你必須知道,許多「Build」實例已經入隊,你不能依賴lastsuccessful構建永久鏈接(下一個「Build1」或「Build2」可能已經在「Test1」第一個「Build」將會彈出隊列),並且您將不得不設法跟蹤正在測試的構建版本。例如,參數化的觸發器插件可以幫助解決這個問題:例如,您可以將上游構建的ID作爲參數傳遞給參數化的觸發器插件。