如何在 Jenkins 声明式管道中使用节流并发构建

How to use Throttle Concurrent Builds in Jenkins Declarative Pipelines

我有 Jenkins 声明性管道,用于触发数据库刷新的几个不同的回购协议,以及依赖于数据库的单元测试。这些 Jenkins 作业是由 GitHub 中的拉取请求触发的。

为避免资源冲突,我需要同时 运行 阻止这些作业——在每个项目内和跨项目。

"Throttle Concurrent Builds" 插件似乎是为此而构建的。

我已经安装了插件并配置了一个类别,如下所示:

并且我将 "throttle" 选项添加到应该限制构建的存储库之一的 Jenkinsfile 中:

pipeline {

    agent any

    options {
        throttle(['ci_database_build'])
    }

    stages {
        stage('Build') {
            parallel {
                stage('Build source') {
                    steps {

                        // etc etc...

但是,这似乎并不能阻止同时执行 2 个作业。作为证据,这里有 2 个作业(都包含上述 Jenkisfile 更改)同时执行:

我错过了什么?

选项块中的以下内容应该有效

options {
    throttleJobProperty(
        categories: ['ci_database_build'],
        throttleEnabled: true,
        throttleOption: 'category',
    )
}

完整的语法可以在这里看到:https://github.com/jenkinsci/throttle-concurrent-builds-plugin/pull/68)