#jenkins #groovy #jenkins-pipeline
#дженкинс #groovy #дженкинс-конвейер
Вопрос:
Я использую проект конвейера Дженкинса. В сценарии я хотел бы написать параллельный блок динамическим способом, поскольку количество узлов может меняться. Например, из этого:
parallel(
node1: {
node(){
stage1()
stage2()
...
}
},
node2: {
node(){
stage1()
stage2()
...
}
},
...
)
к чему-то вроде этого
for (int i = 0; i < $NODE_NUMBER; i ) {
"node${i}": {
node (’namenode-' ${i}) {
something()
}
}
но этот способ не работает, Groovy / Jenkins не доволен этим синтаксисом. Может кто-нибудь предложить лучший способ сделать это?
Ответ №1:
Вы можете сначала определить сопоставление узлов как branches
, а затем выполнить их как parallel branches
.
def numNodes = 4
def branches = [:]
for(int i = 0; i < numNodes; i ) {
branches["node${i}"] = {
node("namenode-${i}") {
something()
}
}
}
parallel branches
Комментарии:
1. Не могли бы вы предоставить полное рабочее решение? Похоже, это больше не работает, не так ли?