如何只在Jenkins中执行最近的排队作业?

时间:2014-11-10 13:30:44

标签: jenkins

我在Jenkins有一个提交构建项目,它在完成时安排一个验收构建项目。由于提交的速度比接受构建作业完成的速度快,因此在短时间之后,现在有六个排队的接受构建作业。我希望验收构建项目像“Poll SCM”功能一样工作 - 完成后,启动最近排队的作业,跳过其余部分。

由于我需要将提交构建作业中的信息传递给接受构建作业,因此我无法使用“构建其他项目后构建”而不会产生更多黑客攻击。

1 个答案:

答案 0 :(得分:7)

@ l0b0,

Jenkins的行为是合并构建,以便队列只包含当前正在运行的构建和一个排队的作业。如果新排队的作业所采用的参数与队列中已有的参数不同,则深度才会增加。

所以我收集到您的下游(接受)工作需要某些参数,但您需要提供有关其工作方式的更多详细信息。

如果您正在使用parameterized trigger plugin,那么您应该查看此existing SO thread

更一般地说,您应该查看您的参数。听起来你从上游到下游作业传递了太多信息,导致Jenkins队列将它们视为不同的参数,然后不一定如此。

您是否将上次成功上游作业的运行编号作为参数传递?如果是的话,那么你是否有问题。你应该做的是使用上游作业的Promoted Build Plugin来标记上一次成功的构建,然后让下游作业简单地跳转到最近推出的构建。

希望有所帮助。