Como reconstruir vários trabalhos ao mesmo tempo no Jenkins?


9

Estou usando o Jenkins Rebuild Plugin para executar uma compilação parametrizada com um único botão de reconstrução . No entanto, quando preciso executar novamente dezenas de trabalhos parametrizados (selecionados ou da mesma pasta), ainda não é eficiente.

Existe alguma maneira mais simples (eventualmente usando plug-in diferente) de executar novamente vários trabalhos ao mesmo tempo usando os últimos parâmetros usados?


2
Não conheço um plug-in que faça várias reconstruções. Mas posso sugerir talvez adotar uma abordagem diferente e usar uma solução baseada em novas tentativas, em que qualquer compilação com falha tenta novamente (de acordo com alguma configuração). Isso meio que tornaria redundante a necessidade de várias reconstruções (pelo menos em alguns casos).
Assaf Lavie

Respostas:


8

Você pode usar um pipeline para unir os trabalhos, executando-os em paralelo ou sequencialmente através de etapas.
Você pode passar os parâmetros relevantes para cada trabalho, como o chama no script de pipeline.
Então você só precisa reconstruir um único trabalho de pipeline. Você também pode vincular os trabalhos a um nome de construção comum por meio de uma variável.

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

Você também pode criar uma lista de objetos de parâmetro e depois passar para a etapa de construção:

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 ficaria assim:

[
    [$class:StringParameterValue, name:param1, value:value1],
    [$class:StringParameterValue, name:param2, value:value2]
]
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.