Jenkins/Hudson上游工作没有获得下游工作的"球"颜色状态

vic*_*rgp 8 continuous-integration hudson hudson-plugins jenkins

我有一个上游工作,执行4个下游工作.

如果上游作业成功完成,则下游作业开始执行.

上游工作,因为它成功完成,获得一个蓝色球(构建结果=稳定),但即使下游工作失败(红球)或不稳定(黄球),上游工作仍然保持其蓝色.

无论如何都要让上游作业的结果依赖于下游作业?我的意思是,如果三个下游作业得到稳定的构建但其中一个得到不稳定的构建,则上游构建结果应该是不稳定的.

vic*_*rgp 6

我找到了解决方案.有一个名为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);
}
Run Code Online (Sandbox Code Playgroud)

您可以在我的博客条目中找到更多信息.


小智 5

可能对您有用的另一个选项是使用参数化构建插件.它允许您将4个"下游"构建作为构建步骤.这意味着如果任何子构建执行,您的"父"构建可能会失败.

当我们想要隐藏构建管道插件视图的复杂性时,我们会这样做.

  • 您好,感谢您的回答,但是,您能解释一下我的意思吗?我不知道如果下游作业失败,我怎么能使用该插件使父母失败.谢谢! (3认同)