Come ricostruire più lavori contemporaneamente in Jenkins?


9

Sto usando Jenkins Rebuild Plugin per eseguire build con parametri con un solo pulsante Rebuild . Tuttavia, quando ho bisogno di rieseguire dozzine di lavori parametrizzati (selezionati o dalla stessa cartella), non è ancora efficiente.

Esiste un modo più semplice (eventualmente utilizzando un plug-in diverso) per rieseguire più processi contemporaneamente utilizzando gli ultimi parametri utilizzati?


2
Non sono a conoscenza di un plug-in che esegua la ricostruzione multipla. Ma posso suggerire di forse adottare un approccio diverso e utilizzare una soluzione basata su nuovi tentativi, in cui qualsiasi build non riuscita riprova (secondo alcune configurazioni). Ciò renderebbe in qualche modo superflua la necessità di ricostruire in più (almeno in alcuni casi).
Assaf Lavie

Risposte:


8

È possibile utilizzare una pipeline per legare insieme i lavori, eseguendoli in parallelo o in sequenza attraverso passaggi.
È possibile passare i parametri pertinenti a ciascun lavoro mentre lo si chiama dallo script della pipeline.
Quindi è sufficiente ricostruire un singolo processo della pipeline. Puoi anche associare i lavori a un nome di build comune tramite una variabile.

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

Puoi anche creare un elenco di oggetti parametro, quindi passarlo nel passaggio di creazione:

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 sarebbe simile a questo:

[
    [$class:StringParameterValue, name:param1, value:value1],
    [$class:StringParameterValue, name:param2, value:value2]
]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.