【发布时间】:2018-11-06 01:18:21
【问题描述】:
我正在使用 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 指令?
【问题讨论】:
-
您不能在管道级别声明代理,以便所有阶段都在同一个代理上运行吗?
-
你完全正确;如果这是答案,我现在就接受。
-
添加它作为答案:)
标签: jenkins jenkins-plugins jenkins-pipeline