簡體   English   中英

Jenkins/Hudson 上游作業沒有獲得下游作業的狀態“球”顏色

[英]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 為您的上游項目配置它以在下游作業完成時包含一些視覺指示器。 它不會改變整體作業狀態,但會在下游作業失敗時通知我們。

也許這個插件可以滿足您的需求?

Jenkins 先決條件構建步驟插件

我的項目的解決方法是創建一個新工作,即下游的下游 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM