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

Jenkins - How to pause queued job's runs and let a new build take priority

詹金斯任何版本。

我有两个版本:1.642.3 或 2.32.3

我有一份 Jenkins 工作 jobA。假设此作业将工件部署到目标部署服务器。

假设我在此作业上手动启动了多个构建 - 或通过 Jenkins CLI - 或通过 Rest API 方式(即通过一些 automation/integration/parent 上游作业调用此作业)。

假设我在队列中有将近 100 多个这样的构建(准备在正在进行的构建完成后立即启动),我正在尝试看看是否有办法 暂停现有的排队构建PS:我不想取消它们)启动一个新的构建(我想紧急部署),一旦完成,取消暂停排队的构建(这样我就不必取消所有这些 re-submitting/re-building 再次 通过记住传递的参数是什么 -- 工件名称和目标部署服务器)。

我的3个条件:

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

2) 这个工作还在源机器上的一个公共位置创建了一些 运行time folders/files,我不想被 运行ning 并发/并行覆盖如果我启用 "Execute concurrent builds",就会构建。我知道,并发构建的工作空间对于每个作业 运行 都是单独的,但如果作业在 运行.

期间创建公共 folder/file 则不是

3) 我不想创建此作业的副本:)

一句话,是否可以暂停现有的排队构建(或一些排队构建),以便我可以启动一个新构建或让其他构建优先作为下一个构建,然后取消暂停暂停的构建恢复(不需要他们重新启动的启动)?

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

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