我遇到了一个问题,即使先前的构建步骤失败,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