繁体   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