Làm thế nào để xây dựng lại nhiều công việc cùng một lúc trong Jenkins?


9

Tôi đang sử dụng Plugin Jenkins Rebuild để thực hiện các bản dựng được tham số hóa bằng một nút Rebuild duy nhất . Tuy nhiên, khi tôi cần chạy lại hàng tá công việc được tham số hóa (được chọn hoặc từ cùng một thư mục), nó vẫn không hiệu quả.

Có cách nào đơn giản hơn (cuối cùng sử dụng các plugin khác nhau) để chạy lại nhiều công việc cùng một lúc bằng cách sử dụng các tham số được sử dụng cuối cùng không?


2
Tôi không biết về một plugin có nhiều bản dựng lại. Nhưng tôi có thể đề nghị có thể thực hiện một cách tiếp cận khác và sử dụng giải pháp dựa trên thử lại, trong đó bất kỳ bản dựng không thành công nào cũng thử lại (theo một số cấu hình). Điều đó sẽ làm cho nhu cầu xây dựng lại nhiều dự phòng (ít nhất là trong một số trường hợp).
Assaf Lavie

Câu trả lời:


8

Bạn có thể sử dụng một đường ống để liên kết các công việc lại với nhau, thực hiện chúng song song hoặc tuần tự qua các bước.
Bạn có thể truyền các tham số có liên quan cho từng công việc khi bạn gọi nó từ tập lệnh đường ống.
Sau đó, bạn chỉ cần xây dựng lại một công việc đường ống duy nhất. Bạn cũng có thể liên kết các công việc với một tên xây dựng chung thông qua một biến.

build job: 'buildjob1', parameters: [
  [$class: 'StringParameterValue', name: 'BUILD_NAME', value: ${env.JOB_BASE_NAME}-${env.BUILD_NUMBER}"], 
  [$class: 'StringParameterValue', name: 'FIXEDPARAM', value: 'some-string'],
  [$class: 'StringParameterValue', name: 'PARAM1', value: "${PARAM1}"]
]

1

Bạn cũng có thể xây dựng một danh sách các đối tượng tham số, sau đó chuyển nó vào bước xây dựng:

def paramsMap = [:]
paramsMap['param1'] = 'value1'
paramsMap['param2'] = 'value2'
def paramsObjects = []
paramsMap.each {
  key, value ->
    paramsObjects.push([$class: 'StringParameterValue', name: key, value: value])
}
build job: jobName, parameters: paramsObjects

paramsObjects sẽ trông như thế này:

[
    [$class:StringParameterValue, name:param1, value:value1],
    [$class:StringParameterValue, name:param2, value:value2]
]
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.