2017-01-05 103 views
11

Jenkins'deki belirli sayıya eşzamanlı yapı sayısını sınırlamak için arıyorum, çok satırlı boru hattı iş akışından yararlanın, ancak bunu dokümanlar veya google'da yapmanın iyi bir yolunu bulamadım.Jenkins eşzamanlı çok bölmeli boru hattı nasıl yapılandırılır?

Bazı dokümanlar, bunun bir Jenkinsfile'ın stage adımında eşzamanlılık kullanılarak gerçekleştirilebileceğini söylüyor, ancak ben bunu yapmanın onaylanmayan bir yolu olan read elsewhere.

Job Properties aracılığıyla eşzamanlılığı sınırlandırmak için son zamanlarda something released gibi görünüyordu, ancak bunun için belgelere ulaşamadı ve kod izinde sorun yaşıyorum.

properties([concurrentBuilds(false)])

Ama sorun o çalışma alma karşılaşıyorum: tek şey aşağıdaki gösterir bir PR bulundu.

Belirli, çok bölmeli bir proje için eş zamanlı yapıların sayısını nasıl sınırlandıracak iyi bir örnek var mı? Belki birden fazla eşzamanlı eşzamanlı sayının nasıl sınırlandığını veya kaplandığını gösteren bir Jenkinsfile pasajı mı?

cevap

11

Ne aradığımı bulundu. Eşzamanlı yapıları Jenkinsfile'ınızda aşağıdaki bloğu kullanarak sınırlayabilirsiniz.

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

    //do stuff 
    ... 
} 
aynı bildirge sözdizimi ile elde edilebilir

:

pipeline { 
    options { 
     disableConcurrentBuilds() 
    } 
} 
+2

bunu yapabilirsiniz bildirimsel sözdizimi için aynıdır. İşte [dokümanlar] (https://jenkins.io/doc/book/pipeline/syntax/#options) –

0

@VadminKotov buna da Jenkins bildirim boru hatlarını kullanarak concurrentbuilds devre dışı bırakmak mümkün olduğu belirtildiği gibi:

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