jenkins groovy concurrency jenkins-pipeline

¿Cómo limitar las construcciones de tuberías multibranquios concurrentes de Jenkins?



groovy concurrency (2)

Estoy considerando limitar el número de compilaciones concurrentes a un número específico en Jenkins, aprovechando el flujo de trabajo de tuberías de múltiples ramificaciones pero no he encontrado ninguna buena manera de hacerlo en los documentos o Google.

Algunos documentos dicen que esto se puede lograr usando la concurrencia en el paso de la stage de un archivo Jenkins, pero también he leído en otros lugares que esa es una forma obsoleta de hacerlo.

Parece que se publicó algo recientemente para limitar la concurrencia a través de las Job Properties pero no pude encontrar la documentación y tengo problemas para seguir el código. Lo único que encontré es un PR que muestra lo siguiente:

properties([concurrentBuilds(false)])

Pero estoy teniendo problemas para que funcione.

¿Alguien sabe o tiene un buen ejemplo de cómo limitar el número de compilaciones simultáneas para un proyecto multibranquio determinado? ¿Tal vez un fragmento de Jenkinsfile que muestre cómo limitar o limitar el número de compilaciones simultáneas multibranquios?


Como @VadminKotov indicó, es posible deshabilitar los construcciones simultáneas utilizando también las líneas de expresión declarativas de jenkins:

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


Encontré lo que estaba buscando. Puede limitar las compilaciones simultáneas utilizando el siguiente bloque en su archivo Jenkins.

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

Lo mismo se puede lograr con una sintaxis declarativa:

pipeline { options { disableConcurrentBuilds() } }