1

我遇到了一个问题,即使先前的构建步骤失败,Jenkins 也会继续执行后续的构建步骤。这是为了建立一个 Jenkins 自由风格的工作。

我遇到问题的构建步骤是“在其他项目上触发/调用构建”步骤,我正在选择/检查“阻止直到触发的项目完成构建”选项并将父作业设置为标记构建结果与触发的作业相同。

假设我使用上述选项按顺序安排了 Job_1、Job_2 和 Job_3。Job_1 通过就好了,然后 Job_2 失败了。在 Jenkins 日志中,它显示 Job_2 失败并将父作业标记为失败。但是,即使在将自身标记为失败后,父作业仍会继续执行 Job_3。

这是 Jenkins 控制台输出的示例;注意 Job_2 是如何失败并且构建结果更改为失败的,但是 1 秒后,即使构建已经标记为失败,Jenkins 仍然会启动 Job_3:

12:34:54  Waiting for the completion of Job_1
12:48:44  Job_1 #7 completed. result was SUCCESS
12:48:44  Build step 'Trigger/call builds on other projects' changed build result to SUCCESS
12:48:45  Waiting for the completion of Job_2
18:18:44  Job_2 #169 completed. result was FAILURE
18:18:44  Build step 'Trigger/call builds on other projects' changed build result to FAILURE
18:18:45  Waiting for the completion of Job_3
18:38:25  Job_3 #180 completed. result was SUCCESS
4

1 回答 1

0

事实证明,问题出在触发器参数化构建插件上。出于某种原因,他们认为即使作为阻塞调用的构建步骤失败并调用调用父作业失败,继续执行后续构建步骤也是一个好主意。

看来我得自己做点什么或者改用 Bamboo...

于 2013-06-20T21:33:54.917 回答