如何限制Jenkins并发多分支管道构建?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何限制Jenkins并发多分支管道构建?相关的知识,希望对你有一定的参考价值。

我正在考虑在Jenkins中将并发构建的数量限制为特定的数量,利用多分支管道工作流程,但在docs或google中找不到任何好的方法。

一些文档说这可以使用Jenkins文件的stage步骤中的并发来完成,但我也是read elsewhere,这是一种弃用的方式。

看起来最近有something released通过Job Properties来限制并发性但是我找不到它的文档而且我在跟踪代码时遇到了麻烦。我发现PR唯一能显示以下内容:

properties([concurrentBuilds(false)])

但是我无法让它正常工作。

有没有人知道或有一个很好的例子来说明如何限制给定的多分支项目的并发构建数量?也许是一个Jenkinsfile片段,展示了如何限制或限制多分支并发构建的数量?

答案

找到了我想要的东西。您可以使用Jenkinsfile中的以下块来限制并发构建。

node {
  // This limits build concurrency to 1 per branch
  properties([disableConcurrentBuilds()])

  //do stuff
  ...
}

使用声明性语法可以实现相同的目的:

pipeline {
    options {
        disableConcurrentBuilds()
    }
}
另一答案

由于@VadminKotov表示可以使用jenkins声明性管道禁用并发构建:

pipeline {
    agent any
    options { disableConcurrentBuilds() }
    stages {
        stage('Build') {
            steps {
                echo 'Hello Jenkins Declarative Pipeline'
            }
        }
    }
}

以上是关于如何限制Jenkins并发多分支管道构建?的主要内容,如果未能解决你的问题,请参考以下文章

DEVOPS技术实践_08:Jenkins多分支管道

如何让通用 Webhook 触发器插件与 Jenkins 中的多分支管道一起使用?

Jenkins多分支管道脚本

如何测试使用分支名称的Jenkins管道(或其他jenkins脚本)?

如何使用管道代码覆盖默认的 Jenkins Git 插件检出?

我怎样才能使 cppcheck.xml 使用 jenkinsfile 本身在 jenkins 上发布?