2017-01-05 18 views
11

Tôi đang xem xét việc giới hạn số lượng bản dựng đồng thời cho một số cụ thể trong Jenkins, tận dụng quy trình làm việc của đường ống nhiều lần nhưng không tìm thấy cách nào tốt để thực hiện điều này trong tài liệu hoặc google.Làm thế nào để hạn chế việc xây dựng hệ thống đường ống đồng thời của Jenkins?

Một số tài liệu nói điều này có thể được thực hiện bằng cách sử dụng đồng thời trong bước stage của Jenkinsfile nhưng tôi cũng có read elsewhere rằng đó là cách không dùng nữa.

Dường như có something released khá gần đây để hạn chế đồng thời qua Job Properties nhưng tôi không thể tìm thấy tài liệu cho nó và tôi đang gặp sự cố khi theo dõi mã. Điều duy nhất tôi tìm thấy một PR cho thấy như sau:

properties([concurrentBuilds(false)])

Nhưng tôi đang gặp rắc rối khi muốn làm việc.

Có ai biết hoặc có ví dụ hay về cách hạn chế số lượng bản dựng đồng thời cho một dự án đa ngành nhất định không? Có lẽ một đoạn mã Jenkinsfile cho thấy cách giới hạn hoặc giới hạn số lượng các phiên bản đồng bộ hóa nhiều lần?

Trả lời

11

Tìm thấy những gì tôi đang tìm kiếm. Bạn có thể giới hạn việc xây dựng đồng thời bằng cách sử dụng khối sau trong Jenkinsfile của bạn.

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

    //do stuff 
    ... 
} 

Cùng có thể đạt được với một cú pháp khai báo:

pipeline { 
    options { 
     disableConcurrentBuilds() 
    } 
} 
+2

Bạn có thể làm tương tự cho cú pháp khai báo. Đây là [tài liệu] (https://jenkins.io/doc/book/pipeline/syntax/#options) –

0

Như @VadminKotov chỉ ra nó có thể vô hiệu hóa concurrentbuilds sử dụng Jenkins đường ống dẫn khai báo cũng như:

pipeline { 
    agent any 
    options { disableConcurrentBuilds() } 
    stages { 
     stage('Build') { 
      steps { 
       echo 'Hello Jenkins Declarative Pipeline' 
      } 
     } 
    } 
} 
Các vấn đề liên quan