Jenkins - 如何暂停排队作业的运行并让新构建优先

时间:2017-08-14 18:48:46

标签: jenkins queue jenkins-plugins jenkins-pipeline pause

Jenkins任何版本。

我有两个版本:1.642.3或2.32.3

我有詹金斯的工作 jobA 。让我们假设这个工作将工件部署到目标部署服务器。

  • 它需要2个参数,工件名称和目标部署服务器。
  • 执行并发构建当前已禁用,即未选中已标记。

假设我手动在此作业上启动了多个构建 - 或通过Jenkins CLI - 或通过Rest API方式(即通过调用此作业的某些自动化/集成/父上游作业)。

  • 我现在看到,有一个Jenkins构建正在进行 - 以及所有其他N. 没有。运行的是" 排队"模式。

假设我在队列中有近100个这样的版本(准备好在正在进行的版本完成时立即启动),我试图查看是否有' sa我可以暂停现有的排队版 PS:我不想取消它们)启动新版本(我想要紧急部署)一旦完成,取消排队的构建(以便我不必取消所有这些 re - 通过重新提交/重新构建,记住传递的参数 - 用于工件名称和目标部署服务器。)

我的3个条件:

1)我目前的情况之一是运行此作业的服务器是一台Jenkins主/从机器(它有一些凭据不能被带到其他机器,即我无法复制源Jenkins机器(作业作为奴隶运行的地方,因此,我不能使用一堆奴隶)和

2)此作业还在源计算机上的公共位置创建了一些运行时文件夹/文件,如果我启用"执行并发构建&#34,我不想通过运行并行/并行构建来覆盖它们34 ;.我知道,并发构建的工作区对于每个作业运行都是独立的,但是如果作业在它运行期间创建了一个公共文件夹/文件则不是。

3)我不想创建这份工作的副本:)

在一句话中,是否可以暂停现有的排队构建(或某些排队构建),以便我可以启动新构建或使其他构建优先作为下一个构建,然后取消暂停已暂停的构建(在没有要求他们重新启动的情况下启动)?

1 个答案:

答案 0 :(得分:1)

您可以使用Priority Sorter Plugin
向作业添加新的字符串参数,例如BUILD_PRIORITY并将默认值设置为2.然后在Job Priorities菜单中选择Use Priority from Build Parameter优先级策略并将该参数放在那里。 priority configuration

现在,您可以使用默认的BUILD_PRIORITY参数值(2)运行100多个作业,如果您需要紧急启动新构建,只需将该参数设置为1,它将成为队列中的第一个构建。