我使用的是Declarative Pipelines 1.3.2插件,并且希望在多个并行阶段中使用相同的代理程序(就像只指定一次agent
指令一样):
stage('Parallel Deployment')
{
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
parallel
{
stage('A') { steps { ... } }
stage('B') { steps { ... } }
}
}
但是,詹金斯抱怨道:
“代理”在“并行部署”阶段是不允许的,因为它包含并行阶段
一种解决方案是为每个并行阶段复制agent
指令,但这很繁琐,并且导致很多并行阶段的代码重复很多:
stage('Parallel Deployment')
{
parallel
{
stage('A') {
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
steps { ... }
}
stage('B') {
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
steps { ... }
}
}
}
是否有更惯用的解决方案,还是每个并行阶段都需要复制agent
指令?
答案 0 :(得分:1)
在管道级别声明代理,以便所有阶段都在同一代理上运行。