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


9

Я использую плагин Jenkins Rebuild для выполнения параметризованных сборок с помощью одной кнопки 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.