Jenkins任何版本。
我有两个版本:1.642.3或2.32.3
我有詹金斯的工作 jobA 。让我们假设这个工作将工件部署到目标部署服务器。
假设我手动在此作业上启动了多个构建 - 或通过Jenkins CLI - 或通过Rest API方式(即通过调用此作业的某些自动化/集成/父上游作业)。
假设我在队列中有近100个这样的版本(准备好在正在进行的版本完成时立即启动),我试图查看是否有' sa我可以暂停现有的排队版( PS:我不想取消它们)和启动新版本(我想要紧急部署)一旦完成,取消排队的构建(以便我不必取消所有这些 re - 通过重新提交/重新构建,记住传递的参数 - 用于工件名称和目标部署服务器。)
我的3个条件:
1)我目前的情况之一是运行此作业的服务器是一台Jenkins主/从机器(它有一些凭据不能被带到其他机器,即我无法复制源Jenkins机器(作业作为奴隶运行的地方,因此,我不能使用一堆奴隶)和
2)此作业还在源计算机上的公共位置创建了一些运行时文件夹/文件,如果我启用"执行并发构建&#34,我不想通过运行并行/并行构建来覆盖它们34 ;.我知道,并发构建的工作区对于每个作业运行都是独立的,但是如果作业在它运行期间创建了一个公共文件夹/文件则不是。
3)我不想创建这份工作的副本:)
在一句话中,是否可以暂停现有的排队构建(或某些排队构建),以便我可以启动新构建或使其他构建优先作为下一个构建,然后取消暂停已暂停的构建(在没有要求他们重新启动的情况下启动)?
答案 0 :(得分:1)
您可以使用Priority Sorter Plugin。
向作业添加新的字符串参数,例如BUILD_PRIORITY
并将默认值设置为2.然后在Job Priorities
菜单中选择Use Priority from Build Parameter
优先级策略并将该参数放在那里。
现在,您可以使用默认的BUILD_PRIORITY参数值(2)运行100多个作业,如果您需要紧急启动新构建,只需将该参数设置为1,它将成为队列中的第一个构建。