强制Jenkins只运行一个管道作业并将其余部分放入队列中

时间:2016-12-04 06:38:32

标签: jenkins jenkins-pipeline

我想在整个jenkins服务器中一次只构建一个项目。我试过Jenkins节流并发插件和可锁定的资源插件,但没有运气。由于可锁定资源插件不允许我选择锁定管道作业。

我有3个Jenkins管道作业(作业有管道脚本):

JOB1
JOB2
JOB3

在工作开始时有一些常见的事情(清除内容)。

如果作业完成,手动逐个运行没有任何问题,但如果JOB1正在构建并且JOB2从中间开始,那么它将中断到JOB1并且JOB1的构建失败。

即使我使用CLI启动作业,您也不会知道哪个作业可能正在运行。所以,我正在寻找阻止JOBY的解决方案,如果JOBX正在运行(X,Y可以是1,2或3)并且只允许一个作业在整个Jenkins服务器上运行。就像我说的那样,节流并发插件只为各自的作业而不是多个作业提供自定义选项?

有人可以建议一些多管道作业块的解决方案只能运行一次吗?

1 个答案:

答案 0 :(得分:1)

安装Build Blocker Plugin

配置JOBY检查"阻止构建,如果某些作业正在运行"。

将JOBX名称放在阻止作业文本区域中,每个作业都在新行上。

注意,您还可以使用正则表达式来定义具有相同前缀但以不同数字结尾的单行作业。