首页 文章

Jenkins Declarative Pipeline - 基于git branch动态选择节点(代理)

提问于
浏览
1

我有一个Jenkins主站和从属节点池,它们会动态增长和缩小(基于负载) . 主节点称为“主节点”,从节点具有名称的guid . 目前,没有节点具有标签 .

对于我的项目,我希望github的“develop”分支在主节点上构建,并且拉动请求分支以构建在任何一个从属上 . 这已经在使用节点('master')和node('!master')的脚本管道中成功运行 .

我想开始使用新的Declarative样式的管道 . 目前是否可以根据分支名称在声明性管道中实现相同的“主”和“非主”行为?

在脚本管道中,它看起来像这样:

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

node(selectedNode) {
}

谢谢

1 回答

  • 1

    如果它在脚本中工作,通常可以在声明性管道中的 script 步骤中包含完全相同的内容 . 这适合我:

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

    我可能会走这条路而不是顶级 agent 声明 .

相关问题