有条件地启用Jenkins声明性管道选项?

时间:2018-11-26 22:46:21

标签: jenkins jenkins-plugins jenkins-pipeline

Jenkins是否提供任何功能来实现下面描述的以下管道?

pipeline
{
    agent any
    options
    {
        when {
            branch 'master'
        }
        disableConcurrentBuilds()
    }
    stages { ... }
}

对于该单一管道必须管理的存储库,我有两种状态:

  1. 构建提交以提交到合并请求分支(预合并),允许构建同时运行
  2. 在合并请求( post-merge )的合并上构建master分支,不允许同时运行构建。

1 个答案:

答案 0 :(得分:1)

您可以使用Lockable Resources Plugin来保证有问题的步骤在master分支上不会并行运行。

类似的东西:

stage('on master') {
    when {
        branch 'master'
    }
    steps {
        lock(label: 'choose_a_label') {
            // your steps
        }
    }
}


stage('not on master') {
    when {
        not {
            branch 'master'
        }
    }
    steps {
        // your steps
    }
}