我正在使用jenkins管道项目。在脚本中,我想以动态方式编写 parallel 块,因为节点的数量可以改变。例如,从中:
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对这种语法不满意。有人可以提出更好的方法吗?
答案 0 :(得分:4)
您可以先定义branches
之类的节点映射,然后将其作为parallel branches
执行。
def numNodes = 4
def branches = [:]
for(int i = 0; i < numNodes; i++) {
branches["node${i}"] = {
node("namenode-${i}") {
something()
}
}
}
parallel branches