wake-up-neo.com

Wie kann man Jenkins gleichzeitige Erstellung von Multibranch-Pipelines einschränken?

Ich möchte die Anzahl der gleichzeitigen Builds in Jenkins auf eine bestimmte Anzahl beschränken, indem ich den Multibranch-Pipeline-Workflow nutze, habe aber keine gute Möglichkeit gefunden, dies in den Dokumenten oder in Google zu tun.

Einige Dokumente sagen, dass dies durch gleichzeitiges Verwenden von stage in einem Jenkins-File erreicht werden kann, aber ich habe auch an anderer Stelle gelesen , dass dies eine veraltete Methode ist.

Es sieht so aus, als gäbe es etwas veröffentlichtes vor einiger Zeit, um die Parallelität über Job Properties Zu begrenzen, aber ich konnte keine Dokumentation dafür finden und habe Probleme, den Code zu befolgen. Das einzige, was ich gefunden habe, ist ein PR , das Folgendes zeigt:

properties([concurrentBuilds(false)])

Aber ich habe Probleme, es zum Laufen zu bringen.

Kennt oder hat jemand ein gutes Beispiel dafür, wie man die Anzahl der gleichzeitigen Builds für ein bestimmtes Multibranch-Projekt begrenzt? Vielleicht ein Jenkinsfile-Snippet, das zeigt, wie die Anzahl der gleichzeitigen Mehrfachzweig-Builds begrenzt oder begrenzt werden kann?

27
jmreicha

Gefunden, wonach ich gesucht habe. Sie können die gleichzeitigen Builds mithilfe des folgenden Blocks in Ihrer Jenkins-Datei begrenzen.

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

  //do stuff
  ...
}

Dasselbe kann mit einer deklarativen Syntax erreicht werden:

pipeline {
    options {
        disableConcurrentBuilds()
    }
}
48
jmreicha

Wie @VadminKotov anzeigte, ist es auch möglich, gleichzeitige Builds mit deklarativen Jenkins-Pipelines zu deaktivieren:

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