使用 Jenkins 声明式语法,可以在没有顶级代理的情况下运行并行阶段。这最终会消耗两个执行程序,因为顶级代理被标记为“无”:
pipeline {
agent none
stages {
stage('Run on parallel nodes') {
parallel {
stage('Do one thing') {
agent any
steps {
...
}
stage('Do another thing') {
agent any
steps {
...
}
}
}
}
}
}
对于需要顶级“节点”元素的脚本化管道,这似乎是不可能的。这最终会消耗三个执行者,即使只有两个在做真正的工作:
node {
stage('Run on parallel nodes') {
parallel ([
'Do one thing': {
node() {
...
}
},
'Do another thing': {
node() {
...
}
}
])
}
}
脚本化管道是否可以实现“轻量级”顶级执行器?