¿Cómo reconstruir múltiples trabajos al mismo tiempo en Jenkins?

9

Estoy usando Jenkins Rebuild Plugin para ejecutar compilaciones parametrizadas con un solo botón Reconstruir . Sin embargo, cuando necesito volver a ejecutar docenas de trabajos parametrizados (ya sea seleccionados o desde la misma carpeta), todavía no es eficiente.

¿Hay alguna forma más simple (eventualmente usando un complemento diferente) para volver a ejecutar múltiples trabajos al mismo tiempo usando los últimos parámetros utilizados?

kenorb
fuente
2
No conozco un complemento que realice una reconstrucción múltiple. Pero puedo sugerirle que adopte un enfoque diferente y use una solución basada en reintentos, donde cualquier compilación que falla puede volver a intentarlo (según alguna configuración). Eso haría que la necesidad de reconstrucción múltiple sea redundante (al menos en algunos casos).
Assaf Lavie

Respuestas:

8

Puede usar una canalización para unir los trabajos, ejecutándolos en paralelo o secuencialmente a través de pasos.
Puede pasar los parámetros relevantes a cada trabajo como lo llama desde el script de la tubería.
Entonces solo necesita reconstruir un solo trabajo de tubería. También puede vincular los trabajos con un nombre de compilación común a través de una variable.

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}"]
]
Jiri Klouda
fuente
1

También puede crear una lista de objetos de parámetros y luego pasarla al paso de compilación:

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 se vería así:

[
    [$class:StringParameterValue, name:param1, value:value1],
    [$class:StringParameterValue, name:param2, value:value2]
]
modle13
fuente