我有一个上游作业,可以执行4个下游作业。
如果上游作业成功完成,则下游作业开始执行。
上游作业,因为它成功完成,得到一个蓝色球(build result=stable),但即使下游作业失败(红色球)或不稳定(黄色球),上游作业仍保持其蓝色。
有没有办法得到依赖于下游任务的上游任务的结果?我的意思是,如果三个下游任务获得了稳定的构建,但其中一个获得了不稳定的构建,则上游构建结果应该是不稳定的。
发布于 2011-06-15 01:25:01
我找到了解决方案。有一个称为Groovy Postbuild pluging的插件,可以让您在构建后阶段执行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条目中找到更多信息。
发布于 2011-05-31 13:24:09
另一个可能对你有用的选择是使用参数化构建插件。它允许您将4个“下游”构建作为构建步骤。这意味着,如果任何子构建失败,您的“父”构建可能会失败。
当我们想要隐藏build-pipeline插件视图的复杂性时,我们会这样做。
发布于 2011-05-27 23:44:20
我们遇到了类似的问题,还没有找到一个完美的解决方案。部分解决方案是使用Promoted Builds Plugin。为您的上游项目配置它,以便在下游任务完成时包含一些可视指示器。它不会改变整个作业的状态,但会在下游作业失败时通知我们。
https://stackoverflow.com/questions/6141003
复制相似问题