我有一个函数可以创建要并行运行的动态阶段,代码看起来与此类似...
def stagesMap = [:]
for (int i = 1; i < 3; i++) {
def stageName = "Stage ${i}"
stagesMap[testName] = {
stage("${stageName}") {
agent { label 'SomeAgent' }
script {
someFunctionCall()
}
}
}
}
parallel stagesMap
当我运行此管道时,所有阶段都在主代理上运行,而不是在动态阶段中指定的代理上运行。
有没有办法在动态创建阶段时指定代理?
解决方案是使用节点,而不是阶段。
def stagesMap = [:]
for (int i = 1; i < 3; i++) {
stagesMap[testName] = {
node('nodeNameOrLabel') { //use node here instead of stage.
script {
someFunctionCall()
}
}
}
}
parallel stagesMap