Як відновити кілька робочих місць одночасно в Дженкінсі?


9

Я використовую модуль Jenkins Rebuild Plugin для виконання параметризованих збірок за допомогою однієї кнопки Rebuild . Однак, коли мені потрібно запустити кілька десятків параметрів, що параметризуються (або вибраних, або з тієї ж папки), це все ще не ефективно.

Чи є простіший спосіб (зрештою, використовуючи різний плагін) для повторного запуску декількох завдань одночасно, використовуючи останні використовувані параметри?


2
Мені невідомий плагін, який робить багатореконструкцію. Але я можу запропонувати, можливо, скористатися іншим підходом і використовувати рішення, засноване на спробі, де будь-яка невдала збірка спроба сама (за певною конфігурацією). Це призвело б до необхідності багаторазового відновлення надлишків (принаймні, в деяких випадках).
Ассаф Лав'є

Відповіді:


8

Ви можете використовувати конвеєр, щоб зв’язати завдання разом, виконуючи їх або паралельно, або послідовно, шляхом кроків.
Ви можете передавати відповідні параметри до кожного завдання, як ви називаєте його з сценарію конвеєра.
Тоді потрібно просто відновити єдину роботу з трубопроводу. Ви також можете зв’язати завдання разом із загальною назвою збірки через змінну.

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

Ви також можете скласти список об'єктів параметрів, а потім передати його на етап збирання:

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 виглядатиме так:

[
    [$class:StringParameterValue, name:param1, value:value1],
    [$class:StringParameterValue, name:param2, value:value2]
]
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.