2011-05-26 69 views
8

我有一個上游作業,執行4個下游作業。Jenkins/Hudson上游作業沒有獲得下游作業的狀態「球」顏色

如果上游作業成功完成,則下游作業開始執行。

上游作業自成功完成後會得到一個藍色球(構建結果=穩定),但即使下游作業失敗(紅球)或不穩定(黃球),上游作業仍保持其藍色。

有沒有辦法得到上游工作依賴下游工作的結果?我的意思是,如果三個下游工作得到穩定的構建,但其中一個得到不穩定的構建,則上游構建結果應該不穩定。

+1

這種方法是非常有用的(見頂部額定溶液): HTTP://計算器。com/questions/5487104/how-do-i-trigger-another-job-from-hudson-as-a-pre-build-step – vetalok 2012-06-25 11:49:40

回答

6

我找到了解決方案。有一個名爲Groovy Postbuild plugin的插件,可以在後期構建階段執行Groovy腳本。 爲下游作業添加一個簡單代碼,您可以修改上游整體狀態。

這是你需要添加代碼:

upstreamBuilds = manager.build.getUpstreamBuilds(); 

upstreamJob = upstreamBuilds.keySet().iterator().next(); 

lastUpstreamBuild = upstreamJob.getLastBuild(); 

if(lastUpstreamBuild.getResult().isBetterThan(manager.build.result)) { 
    lastUpstreamBuild.setResult(manager.build.result); 
} 

你可以在我的blog here的進入更多的信息。

1

我們有類似的問題,並沒有找到一個完美的解決方案。部分解決方案是使用Promoted Builds Plugin。爲上游項目配置它以在下游作業完成時包含一些可視指示器。它不會改變整體工作狀態,但當下遊工作失敗時它會通知我們。

5

另一個可能適用於您的選項是使用參數化構建插件。它允許您將4「下游」構建爲構建步驟。這意味着如果有任何子版本的話,你的「父母」版本可能會失敗。

我們這樣做是爲了隱藏build-pipeline插件視圖的複雜性。

+3

你好,非常感謝你的回答,但是,你能解釋我多一點嗎?你的意思是?,我看不到如果下游作業失敗,我該如何使用該插件使父項失敗。謝謝! – victorgp 2011-05-31 07:26:49

0

我的項目的工作是創建一個新的工作,這是下游的下游流。我們在所有三個原始下游作業中設置了後期構建步驟「在其他項目上觸發參數化構建」。解析新作業的參數取決於三個作業的狀態,參數將導致新作業作出相應反應。

1.創建一個新的工作,其中包含一個簡單的類和一個簡單的測試。這兩個參數dependens,如果參數"status" = fail,類通不過測試失敗,即一流的失敗,如果在其他項目上與相關配置三個原始下游的工作參數"status"=unstable

2.設置觸發參數構建。

3.相應地設置新任務的通知。

相關問題