You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于GitHub分支为Jenkins构建选择Solaris或Linux代理?

Jenkins声明式流水线分支代理切换方案

针对Java项目生产部署在Solaris、测试开发用Linux Jenkins代理的场景,以下是实现分支匹配时自动切换代理的声明式流水线方案:

方案一:分场景明确配置(推荐,便于扩展)

这种方式将不同分支的构建逻辑拆分到对应stage块,后续可针对不同分支单独调整构建步骤:

pipeline {
    agent none // 全局不预设代理,由各stage按需选择
    stages {
        stage('Build (Solaris)') {
            // 匹配master或release_branch分支时触发
            when {
                anyOf {
                    branch comparator: 'EQUALS', pattern: 'master'
                    branch comparator: 'EQUALS', pattern: 'release_branch'
                }
                beforeAgent true // 先判断分支再分配代理,避免浪费资源
            }
            agent { label 'Solaris' }
            steps {
                sh 'mvn clean install' // 替换为实际构建命令
            }
        }

        stage('Build (Linux)') {
            // 非master/release_branch分支时触发
            when {
                not {
                    anyOf {
                        branch comparator: 'EQUALS', pattern: 'master'
                        branch comparator: 'EQUALS', pattern: 'release_branch'
                    }
                }
                beforeAgent true
            }
            agent { label 'Linux' }
            steps {
                sh 'mvn clean install' // 替换为实际构建命令
            }
        }
    }
}

方案二:动态标签选择(简洁,适合构建逻辑一致的场景)

通过Groovy三元表达式动态生成代理标签,无需拆分stage:

pipeline {
    agent none
    stages {
        stage('Build') {
            // 根据分支名称动态选择代理标签
            agent {
                label "${env.BRANCH_NAME in ['master', 'release_branch'] ? 'Solaris' : 'Linux'}"
            }
            steps {
                sh 'mvn clean install' // 替换为实际构建命令
            }
        }
    }
}

关键配置说明

  • agent none:全局不指定代理,确保每个stage仅在满足条件时才分配对应代理资源。
  • beforeAgent true:在分配代理前先执行分支判断,避免为不符合条件的分支分配错误代理。
  • anyOf:用于同时匹配多个分支条件(master和release_branch)。
  • env.BRANCH_NAME:Jenkins内置环境变量,当前构建的分支名称。

内容的提问来源于stack exchange,提问作者Jithu Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:10:37