Jenkins声明性管道-基于git分支动态选择节点(代理)

Jenkins声明性管道-基于git分支动态选择节点(代理),jenkins,jenkins-pipeline,jenkins-declarative-pipeline,Jenkins,Jenkins Pipeline,Jenkins Declarative Pipeline,我有一个Jenkins主节点和一个从节点池,它们动态地增长和收缩(基于负载)。主节点称为“主节点”,从节点的名称为guid。目前没有任何节点具有标签 对于我的项目,我希望github的“development”分支构建在主节点上,而请求分支构建在任何一个从节点上。这已在使用节点('master')和节点('!master')的脚本管道中成功运行 我想开始使用新的声明式管道样式。基于分支名称,在声明性管道中当前是否可能实现相同的“主”和“非主”行为 在脚本化管道中,它如下所示: def selec

我有一个Jenkins主节点和一个从节点池,它们动态地增长和收缩(基于负载)。主节点称为“主节点”,从节点的名称为guid。目前没有任何节点具有标签

对于我的项目,我希望github的“development”分支构建在主节点上,而请求分支构建在任何一个从节点上。这已在使用节点('master')和节点('!master')的脚本管道中成功运行

我想开始使用新的声明式管道样式。基于分支名称,在声明性管道中当前是否可能实现相同的“主”和“非主”行为

在脚本化管道中,它如下所示:

def selectedNode = BRANCH_NAME == 'develop' ? 'master' : '!master'

node(selectedNode) {
}

谢谢

如果它在脚本中工作,您通常可以在声明性管道中的
脚本
步骤中包含完全相同的内容。这对我来说是:

pipeline {
  agent { label 'docker' }
  stages {
    stage('build') {
      steps {
        script {
          def selectedNode = BRANCH_NAME == 'develop' ? 'master' : '!master'

          node(selectedNode) {
          }
        }
      }
    }
  }
}
我可能会走这条路,而不是用顶级的
agent
声明