Pertanyaan Bagaimana cara membatasi Jenkins membangun saluran multibranch secara bersamaan?


Saya sedang mempertimbangkan untuk membatasi jumlah build bersamaan ke nomor tertentu di Jenkins, memanfaatkan alur kerja pipa multibranch tetapi belum menemukan cara yang baik untuk melakukan ini di dokumen atau google.

Beberapa dokumen mengatakan ini dapat dicapai dengan menggunakan konkurensi dalam stage langkah Jenkinsfile tapi aku juga baca di tempat lain bahwa itu adalah cara yang ditinggalkan untuk melakukannya.

Sepertinya ada sesuatu yang dirilis baru-baru ini untuk membatasi konkurensi melalui Job Properties tetapi saya tidak dapat menemukan dokumentasi untuk itu dan saya mengalami masalah dalam mengikuti kode. Satu-satunya hal yang saya temukan PR yang menunjukkan hal-hal berikut:

properties([concurrentBuilds(false)])

Tapi saya kesulitan membuatnya bekerja.

Apakah ada yang tahu atau memiliki contoh yang baik tentang cara membatasi jumlah pembangunan bersamaan untuk proyek multibranch tertentu? Mungkin cuplikan Jenkinsfile yang menunjukkan cara membatasi atau membatasi jumlah build bersamaan multibranch?


14
2018-01-05 19:01


asal


Jawaban:


Temukan apa yang saya cari. Anda dapat membatasi build bersamaan menggunakan blok berikut di Jenkinsfile Anda.

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

  //do stuff
  ...
}

Hal yang sama dapat dicapai dengan sintaks deklaratif:

pipeline {
    options {
        disableConcurrentBuilds()
    }
}

21
2018-01-07 01:21



Seperti @VadminKotov menunjukkan itu mungkin untuk menonaktifkan concurrentbuilds menggunakan jenkins deklaratif pipeline juga:

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

1
2018-03-05 18:36