Конвейер Jenkins выполняет несколько FreeStyleProjects параллельно
Я пытаюсь использовать Jenkins 2.0 с плагином конвейера. Как я могу выполнить несколько задач (FreeStyleProject
s) параллельно (через замыкания).
Я попробовал 2 примера, и они оба потерпели неудачу. Как я могу достичь этой функциональности?
A. Пример конвейерного скрипта;
def taskNames = [
"Test FSP 1",
"Test FSP 2"
]
buildClosures = [:]
for (taskName in taskNames) {
echo "iterating... taskName is: ${taskName}"
def curClosure = {
echo "inside curClosure... taskName is: ${taskName}"
build(taskName)
}
buildClosures.put(taskName, curClosure)
}
parallel(buildClosures)
И это вывод (последний элемент создается дважды, первая переменная переопределяется);
Started by user Cagri Celebi
[Pipeline] echo
iterating... taskName is: Test FSP 1
[Pipeline] echo
iterating... taskName is: Test FSP 2
[Pipeline] Execute in parallel : Start
[Pipeline] [Test FSP 1] parallel { (Branch: Test FSP 1)
[Pipeline] [Test FSP 2] parallel { (Branch: Test FSP 2)
[Pipeline] [Test FSP 1] echo
[Test FSP 1] inside curClosure... taskName is: Test FSP 2
[Pipeline] [Test FSP 1] build (Building Test FSP 2)
[Test FSP 1] Scheduling project: Test FSP 2
[Pipeline] [Test FSP 2] echo
[Test FSP 2] inside curClosure... taskName is: Test FSP 2
[Pipeline] [Test FSP 2] build (Building Test FSP 2)
[Test FSP 2] Scheduling project: Test FSP 2
[Test FSP 1] Starting building: Test FSP 2 #13
[Pipeline] } //parallel
[Pipeline] } //parallel
[Pipeline] Execute in parallel : End
[Pipeline] End of Pipeline
Finished: SUCCESS
Б. Это тоже не помогает;
subjobIteration = [:]
["Test FSP 1","Test FSP 2"].each{ jobName ->
subjobIteration.put(jobName,{build( jobName )})
}
parallel( subjobIteration )
Вывод содержит только первый элемент;
Started by user Cagri Celebi
[Pipeline] Execute in parallel : Start
[Pipeline] [Test FSP 1] parallel { (Branch: Test FSP 1)
[Pipeline] [Test FSP 1] build (Building Test FSP 1)
[Test FSP 1] Scheduling project: Test FSP 1
[Test FSP 1] Starting building: Test FSP 1 #3
[Pipeline] } //parallel
[Pipeline] Execute in parallel : End
[Pipeline] End of Pipeline
Finished: SUCCESS