![](/img/trans.png)
[英]Marking upstream Jenkins/Hudson as failed if downstream job fails
[英]Jenkins/Hudson upstream job does not get the status “ball” color of the downstream jobs
我在上游有一個執行 4 個下游作業的作業。
如果上游作業成功完成,下游作業開始執行。
上游作業,因為它成功完成,得到一個藍色球(構建結果=穩定),但即使下游作業失敗(紅色球)或不穩定(黃色球),上游作業仍保持其藍色。
無論如何,上游作業的結果是否依賴於下游作業?我的意思是,如果三個下游作業獲得穩定的構建但其中一個獲得不穩定的構建,則上游構建結果應該是不穩定的。
我找到了解決方案。 有一個名為 Groovy Postbuild 插件的插件,可讓您在后期構建階段執行 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);
}
您可以在我的博客條目中找到更多信息。
另一個可能對您有用的選項是使用參數化構建插件。 它允許您將 4 個“下游”構建作為構建步驟。 這意味着如果任何子構建失敗,您的“父”構建可能會失敗。
當我們想要隱藏構建管道插件視圖的復雜性時,我們會這樣做。
我們遇到了類似的問題,還沒有找到完美的解決方案。 部分解決方案是使用Promoted Builds Plugin 。 為您的上游項目配置它以在下游作業完成時包含一些視覺指示器。 它不會改變整體作業狀態,但會在下游作業失敗時通知我們。
也許這個插件可以滿足您的需求?
我的項目的解決方法是創建一個新工作,即下游的下游 stream。 我們在所有三個原始下游作業中設置了一個后期構建步驟“觸發其他項目的參數化構建”。 解析到新作業的參數取決於三個作業的狀態,該參數將導致新作業做出相應的反應。
1.創建一個新作業,其中包含一個簡單的 class 和一個簡單的測試。 兩個參數都依賴,即 class 如果參數"status" = fail
則失敗,class 通過但如果參數"status"=unstable
則測試失敗等。
2.為三個原始的下游作業設置Trigger parameterized build on other projects,並進行相關配置。
3.相應地設置新工作的通知。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.