【问题标题】:How to execute only the most recent queued job in Jenkins?如何仅在 Jenkins 中执行最近排队的作业?
【发布时间】:2014-11-10 13:30:43
【问题描述】:

我在 Jenkins 中有一个提交构建项目,它会在完成时安排一个验收构建项目。由于提交的速度比验收构建作业完成的速度快,因此在很短的时间后,现在有 六个 排队的验收构建作业。我希望验收构建项目像“轮询 SCM”功能一样工作 - 完成后,开始最近排队的工作,跳过其余工作。

如果没有更多技巧,我无法使用“在构建其他项目后构建”,因为我需要将信息从提交构建作业传递到验收构建作业。

【问题讨论】:

标签: jenkins


【解决方案1】:

@l0b0,

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

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

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

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

您是否将最后一个成功的上游作业的运行号作为参数传递?如果是这样,那么是的,你有问题。你应该做的是在上游作业上使用Promoted Build Plugin 来标记最后一次成功的构建,然后让下游作业直接跳转到最近升级的构建。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 2022-07-27
    • 2016-09-01
    • 1970-01-01
    • 2018-11-30
    相关资源
    最近更新 更多