【发布时间】:2014-11-10 13:30:43
【问题描述】:
我在 Jenkins 中有一个提交构建项目,它会在完成时安排一个验收构建项目。由于提交的速度比验收构建作业完成的速度快,因此在很短的时间后,现在有 六个 排队的验收构建作业。我希望验收构建项目像“轮询 SCM”功能一样工作 - 完成后,开始最近排队的工作,跳过其余工作。
如果没有更多技巧,我无法使用“在构建其他项目后构建”,因为我需要将信息从提交构建作业传递到验收构建作业。
【问题讨论】:
标签: jenkins
我在 Jenkins 中有一个提交构建项目,它会在完成时安排一个验收构建项目。由于提交的速度比验收构建作业完成的速度快,因此在很短的时间后,现在有 六个 排队的验收构建作业。我希望验收构建项目像“轮询 SCM”功能一样工作 - 完成后,开始最近排队的工作,跳过其余工作。
如果没有更多技巧,我无法使用“在构建其他项目后构建”,因为我需要将信息从提交构建作业传递到验收构建作业。
【问题讨论】:
标签: jenkins
@l0b0,
Jenkins 的行为是合并构建,以便队列仅包含当前正在运行的构建和一个入队作业。仅当新入队的作业采用与队列中已有的不同的参数时,深度才会增加。
所以我收集到您的下游(验收)工作需要某种参数,但您需要提供有关其工作方式的更多详细信息。
如果您使用的是parameterized trigger plugin,那么您应该查看此existing SO thread
更一般地说,您应该查看您的参数。听起来您从上游作业向下游作业传递了太多信息,导致 Jenkins 队列将它们视为不同的参数,而事实并非如此。
您是否将最后一个成功的上游作业的运行号作为参数传递?如果是这样,那么是的,你有问题。你应该做的是在上游作业上使用Promoted Build Plugin 来标记最后一次成功的构建,然后让下游作业直接跳转到最近升级的构建。
希望对您有所帮助。
【讨论】: