È possibile creare un ciclo ripetuto (non infinito) di un lavoro Jenkins, aggiungendo un passaggio condizionale che valuta un parametro $ JOB_COUNTER, che viene semplicemente diminuito a ogni iterazione.
Per fare ciò, prima creare un nuovo parametro String "JOB_COUNTER" con valore predefinito = 1.
Quindi utilizzare EnvInject plugin, e selezionare "Preparare un ambiente per la corsa" + "Override Costruire Parametri", e aggiungere in "Valutata sceneggiatura Groovy":
def map = [:]
int newJobCounter = JOB_COUNTER.toInteger() - 1
println "Decreasing JOB_COUNTER from " + JOB_COUNTER + " to " + newJobCounter
map.put("JOB_COUNTER", newJobCounter)
return map
Infine, con Conditional BuildStep plugin + Parameterized Trigger plugin (e facoltativamente con PostBuildScript plugin, se si desidera avviare l'iterazione successiva solo al termine della compilazione), impostare quanto segue:
UPDATE:
Un altro modo per ciclo, è quello di diminuire JOB_COUNTER nei parametri predefiniti (invece che all'interno EnvInject):
JOB_COUNTER=${JOB_COUNTER}-1
Poi, per aggiornare correttamente JOB_COUNTER ad ogni iterazione, uso valutare metodo() al posto di toInteger(), in Groovy EnvInject:
int newJobCounter = evaluate(JOB_COUNTER)
println "Evaluating JOB_COUNTER: " + JOB_COUNTER + " => " + newJobCounter
map.put("JOB_COUNTER", newJobCounter)
E, infine, l'azione condizionale dovrebbe essere:
$JOB_COUNTER > Greater than 1