我的Jenkins流水线中有一些并行的阶段。它们都是相同的,只是它们运行在不同的代理上:
stage {
parallel {
stage {
agent {
label 'agent-1'
}
steps {
sh 'do task number 468'
}
}
stage {
agent {
label 'agent-2'
}
steps {
sh 'do task number 468'
}
}
stage {
agent {
label 'agent-3'
}
steps {
sh 'do task number 468'
}
}
}
}我想在更多的节点上添加更多的并行阶段,但脚本很长且重复。重写它的最好方法是告诉jenkins在代理1、2、3、4...etc中并行执行相同的步骤?
发布于 2021-07-03 05:10:27
请参阅以下代码,这些代码将在多个代理上创建和运行stage:
// Define your agents
def agents = ['agent-1','agent-2','agent-3']
def createStage(label) {
return {
stage("Runs on ${label}") {
node(label) {
// build steps that should happen on all nodes go here
echo "Running on ${label}"
sh 'do task number 468'
}
}
}
}
def parallelStagesMap = agents.collectEntries {
["${it}" : createStage(it)]
}
pipeline {
agent none
stages {
stage('parallel stage') {
steps {
script {
parallel parallelStagesMap
}
}
}
}
}欲了解更多信息,请访问:Jenkins examples。
https://stackoverflow.com/questions/68230513
复制相似问题