Плагин Jenkins Buildflow: как создавать переменное число заданий параллельно?

У меня есть работа, выполненная с помощью BuildFlow, эта работа получает такой параметр, как job1, job2, job1job2,

В моем 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 правильно, поэтому никаких дальнейших действий не требуется.

Другие вопросы по тегам