詹金斯工作等待其他工作的第一次成功构建

Jenkins job wait for first successful build of other job

我有一个 Jenkins 作业,在另一个作业至少成功构建一次之前不应开始构建。它们本身不相关,所以我不想使用触发器。有办法吗?

一些背景:我正在使用 SCM 轮询来触发第二个作业。我查看了 Files Found Trigger 插件,但在第一个作业构建完成后,它会继续触发第二个作业。我还找到了 运行 条件插件,但它似乎只适用于构建步骤,而不适用于整个构建。

更新 - 第二个作业从第一个作业复制工件。只要第一个作业从未成功完成,复制工件步骤就会失败。我试图通过在第一个作业完成一次之前甚至不尝试构建第二个作业来防止这种失败。

阻止排队作业插件可用于此:https://wiki.jenkins-ci.org/display/JENKINS/Block+queued+job+plugin

一种解决方案是使用 Build Flow plugin

您可以创建新的流程作业并使用此 DSL:

我在重试部分使用了 10,但您可以使用任何数字。

可以通过监视第二个作业的同一个 SCM URL 来触发此流程作业。

更新,这里是第二个解决方案

您可以使用 HTTP Request plugin.

如果你想测试你的第一个作业是否已成功构建至少一次,你可以测试这个URL: http://your.jenkins.instance/job/your.job/lastSuccessfulBuild/

一个例子:

由于我的构建从未成功,因此 lastSuccessfulBuild URL 不存在。 HTTP 请求将我的构建状态更改为失败。

有帮助吗?