有4個職位:如何按照某種預定義的順序在哈德森運行作業?
Build1
Build2
Test1
Test2
build1中和BUILD2可以同時啓動。
Test1的應該只有當build1中和BUILD2將完成啓動。
Tes2只有在Tes1完成後才能啓動。
另外我想有能力分開開始所有這些工作。
有沒有辦法根據這些規則設置作業?
有4個職位:如何按照某種預定義的順序在哈德森運行作業?
Build1
Build2
Test1
Test2
build1中和BUILD2可以同時啓動。
Test1的應該只有當build1中和BUILD2將完成啓動。
Tes2只有在Tes1完成後才能啓動。
另外我想有能力分開開始所有這些工作。
有沒有辦法根據這些規則設置作業?
創建新作業時,通常可以指定必須構建上游項目才能開始此作業。
此選項在構建觸發器 - >在創建/修改作業時創建其他項目後構建。
我想你有幾個選擇。我的假設是,我們正在談論長時間運行的工作,否則我會把它們串起來作爲一個怪物工作(一個工作中的幾個構建步驟),並創建單獨的工作來分別運行它們。
如上所述,對於長時間運行的作業,請查看join plugin。作爲一個通用的參考資料,有一個頁面可以解釋爲什麼你想將測試工作與建築工作分開。見here。
Join插件是這裏的關鍵。 –
我正在運行Hudson版本1.346。
您可以在「構建觸發器」下查看'構建其他項目後構建'。
它說,「多個項目可以像指定‘ABC,DEF’」
所以,你應該能夠「build1中,BUILD2」添加到該字段爲Test1的配置。
從'構建項目後構建'的幫助文本:*設置一個觸發器,以便在其他項目完成構建時爲此項目安排新構建。例如,在構建完成後,這對於運行廣泛的測試非常方便。* - 實質上,Test1將在構建一個或兩個構建完成時觸發,而不是在兩個構建完成後觸發。在這種情況下,您可能可以使用locks-and-latch插件來解決這個問題。 –
您可以保留Test1作爲獨立的作業,而不是構建的一部分。
當Build1和Build2完成時,Test1可以作爲下游構建啓動。 Test2可以是Test1的下游作業。
「Promoted Builds Plugin」可以是一個很好的解決方案:你可以配置一個主作業「Build」,除了啓動2個下游版本「Build1,Build2」(在後期製作操作中)。 然後,您必須添加一個升級過程「在下列下游項目成功構建時」選擇「Build1,Build2」,並具有「Test1」的關聯下游構建操作。 如果「Build1」和「Build2」構建成功(狀態爲STABLE),「Build」將被提升並且「Test1」將被排入隊列。 最後,您觸發Test2作爲Test1的後期構建操作。
但是你必須知道,許多「Build」實例已經入隊,你不能依賴lastsuccessful構建永久鏈接(下一個「Build1」或「Build2」可能已經在「Test1」第一個「Build」將會彈出隊列),並且您將不得不設法跟蹤正在測試的構建版本。例如,參數化的觸發器插件可以幫助解決這個問題:例如,您可以將上游構建的ID作爲參數傳遞給參數化的觸發器插件。
我想同時啓動** Build1 **和** Build2 **。但是當** Build1 **和** Build2 **都完成時,我無法配置** Test1 **以啓動它。當** Build1 **或** Build2 **完成時,可以啓動** Test1 **。我對嗎? –
您還需要檢查「高級項目選項」下的「上游項目正在構建時的塊構建」。如果Build1或Build2在隊列中,這將阻止構建Test1。 –
我沒有這個選項。你用什麼版本的哈德森? –