Плагин Jenkins Buildflow: как создавать переменное число заданий параллельно?
У меня есть работа, выполненная с помощью BuildFlow, эта работа получает такой параметр, как job1
, job2
, job1
job2
,
В моем DSL я разделяю значение параметра с помощью split(",")
, так что теперь у меня есть массив с: ["job1","job2","job1 job2"]
,
Теперь я хочу, чтобы DSL запускал параллельное задание с X сборками параллельно, где X - размер массива, и итерацию, чтобы получить каждую позицию массива в качестве параметра для передачи в сборку вспомогательного задания.
1 ответ
Решение
Попробуйте это в вашем dsl:
subjob = "yourJobName"
subjobIteration = []
["job1","job2","job1 job2"].each{ parameter ->
//add the closure to trigger the subjob to the list
subjobIteration.add({build( subjob, parameter )})
}
parallel( subjobIteration )
Этот фрагмент использует синтаксис для параллельных выполнений заданий, описанный здесь.
Groovy обрабатывает список subjobIteration
по умолчанию для "параллельного"-DSL правильно, поэтому никаких дальнейших действий не требуется.