我有一个基于文件内容生成动态stage的管道。我希望stage在不同的容器上运行,所以我想将agent{docker{image ''}}}标签移到generateStage中的stage内部()函数,但这是不可能的,因为它是一个脚本化的管道。如何在单独的容器上运行这些阶段,并且仍然并行运行它们并动态地生成它们?非常感谢您的帮助。谢谢!
def generateStage(job) {
return {
stage("stage: job") {
//do something
}
}
}
pipeline{
agent none
stages{
.
.
.
stage('parallel stages') {
agent {
docker{
image 'some-image:tag'
}
}
steps {
script {
def list = ["STAGE-A", "STAGE-B"....] // DYNAMIC LIST CREATED FROM A FILE
parallelStages = list.collectEntries{
["$it": generateStage(it)]
}
parallel parallelStages
}
}
}
1条答案
按热度按时间kmbjn2e31#
除了使用代理选项,您还可以执行以下操作。