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

2024-03-22

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

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


@l0b0,

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

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

如果您正在使用参数化触发器插件 http://wiki.hudson-ci.org/display/HUDSON/Parameterized+Trigger+Plugin那么你应该看看这个现有的SO线程 https://stackoverflow.com/questions/8974170/jenkins-parameterized-job-that-only-queues-one-build

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

您是否将最后一次成功的上游作业的运行号作为参数传递?如果是这样,那么你就有问题了。你应该做的是使用升级构建插件 https://wiki.jenkins-ci.org/display/JENKINS/Promoted+Builds+Plugin在上游作业上标记最后一个成功的构建,然后让下游作业简单地跳转到最近升级的构建。

希望有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐