How to limit Jenkins concurrent multibranch pipeline builds?

前端 未结 3 1269
猫巷女王i
猫巷女王i 2020-12-30 18:57

I am looking at limiting the number of concurrent builds to a specific number in Jenkins, leveraging the multibranch pipeline workflow but haven\'t found any good way to do

相关标签:
3条回答
  • 2020-12-30 19:08

    As @VadminKotov indicated it is possible to disable concurrentbuilds using jenkins declarative pipelines as well:

    pipeline {
        agent any
        options { disableConcurrentBuilds() }
        stages {
            stage('Build') {
                steps {
                    echo 'Hello Jenkins Declarative Pipeline'
                }
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-30 19:18

    Found what I was looking for. You can limit the concurrent builds using the following block in your Jenkinsfile.

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

    The same can be achieved with a declarative syntax:

    pipeline {
        options {
            disableConcurrentBuilds()
        }
    }
    
    0 讨论(0)
  • 2020-12-30 19:32

    Limiting concurrent builds or stages are possible with the Lockable Resources Plugin (GitHub). I always use this mechanism to ensure that no publishing/release step is executed at the same time, while normal stages can be build concurrently.

    echo 'Starting'
    lock('my-resource-name') {
      echo 'Do something here that requires unique access to the resource'
      // any other build will wait until the one locking the resource leaves this block
    }
    echo 'Finish'
    
    0 讨论(0)
提交回复
热议问题