一尘不染

动态创建的Jenkins管道脚本

jenkins

我正在使用詹金斯管道项目。在脚本中,我想以动态方式编写 并行 块,因为节点数可以更改。例如,从此:

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对这种语法不满意。有人可以建议一种更好的方法吗?


阅读 293

收藏
2020-07-25

共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
2020-07-25