web-dev-qa-db-fra.com

Comment limiter les builds de pipeline multibranches simultanés Jenkins?

Je cherche à limiter le nombre de versions simultanées à un nombre spécifique dans Jenkins, en tirant parti du flux de travail du pipeline multibranches, mais je n'ai trouvé aucun bon moyen de le faire dans les documents ou sur Google.

Certains documents disent que cela peut être accompli en utilisant la concurrence dans l'étape stage d'un fichier Jenkins mais j'ai aussi lu ailleurs que c'est une façon obsolète de le faire.

Il semble qu'il y ait eu quelque chose de publié assez récemment pour limiter la concurrence via Job Properties Mais je n'ai pas pu trouver de documentation pour cela et j'ai du mal à suivre le code. La seule chose que j'ai trouvée PR qui montre ce qui suit:

properties([concurrentBuilds(false)])

Mais j'ai du mal à le faire fonctionner.

Quelqu'un sait-il ou a-t-il un bon exemple de la façon de limiter le nombre de builds simultanés pour un projet multibranches donné? Peut-être un extrait de Jenkinsfile qui montre comment limiter ou limiter le nombre de versions simultanées multibranches?

27
jmreicha

J'ai trouvé ce que je cherchais. Vous pouvez limiter les générations simultanées en utilisant le bloc suivant dans votre fichier Jenkins.

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

  //do stuff
  ...
}

La même chose peut être obtenue avec une syntaxe déclarative:

pipeline {
    options {
        disableConcurrentBuilds()
    }
}
48
jmreicha

Comme @VadminKotov l'a indiqué, il est également possible de désactiver les builds simultanés à l'aide des pipelines déclaratifs jenkins:

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