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

ie3xauqp  于 2023-10-17  发布在  Jenkins
关注(0)|答案(1)|浏览(143)

我有Jenkins声明性管道,用于触发数据库刷新的几个不同的repos,以及依赖于数据库的单元测试。这些Jenkins作业是从GitHub中的pull request触发的。
为了避免资源冲突,我需要防止这些作业同时运行--在每个项目内和跨项目运行。
“Throttle Concurrent Builds”插件似乎就是为此而构建的。
我已经安装了插件并配置了一个类别,如下所示:

我还在其中一个构建应该被节流的仓库中的Jenkinsfile中添加了“throttle”选项:

pipeline {

    agent any

    options {
        throttle(['ci_database_build'])
    }

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

                        // etc etc...

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

我错过了什么?

iqjalb3h

iqjalb3h1#

选项块中的以下内容应该可以工作

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

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

相关问题