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

Jenkins:如何仅轮询匹配特定正则表达式的新Git分支?

如何配置Jenkins Git SCM仅轮询匹配特定正则的新分支

当然可以实现,下面是两种实用的配置方案,针对你需要检测release-v<version>格式新分支的场景:

方案1:通过Git插件基础配置实现

  1. 限定关注的分支
    进入Jenkins项目的「配置」页面,找到「源代码管理」下的Git配置:

    • 在「分支说明」输入框中,填入正则表达式 */release-v[0-9]+,这个规则会让Jenkins只追踪符合release-v加数字版本格式的分支(比如release-v1、release-v123)。如果版本号包含小数点,可调整为 */release-v\d+(\.\d+)*。
  2. 配置SCM轮询
    切换到「构建触发器」区域,勾选「轮询SCM」,设置轮询时间表达式(比如H/15 * * * *代表每15分钟轮询一次,H是随机分钟数避免集中负载)。

    • 此时Jenkins会定期检查远程仓库中符合分支规则的分支,一旦有新分支创建或者已有符合规则的分支有代码变更,就会触发构建。如果只想仅响应新分支创建而非代码变更,需要结合方案2的脚本逻辑。

方案2:用Pipeline脚本精准检测新分支

如果需要更精准地只在新分支创建时触发操作,推荐用Jenkins Pipeline编写逻辑:

pipeline {
    agent any
    triggers {
        pollSCM('H/15 * * * *') // 每15分钟轮询一次
    }
    stages {
        stage('检测新发布分支') {
            steps {
                script {
                    // 获取远程仓库所有符合规则的分支
                    def remoteBranches = sh(
                        script: 'git ls-remote --heads origin | grep -E "release-v[0-9]+" | cut -f2 | sed "s/refs\\/heads\\///"',
                        returnStdout: true
                    ).trim().split('\n')
                    
                    // 获取本地已追踪的符合规则的分支
                    def localBranches = sh(
                        script: 'git branch -r | grep -E "origin/release-v[0-9]+" | sed "s/origin\\///"',
                        returnStdout: true
                    ).trim().split('\n')
                    
                    // 对比找出新增的分支
                    def newBranches = remoteBranches - localBranches
                    
                    if (newBranches.size() > 0) {
                        echo "发现新发布分支:${newBranches.join(', ')}"
                        // 在这里添加你需要执行的操作,比如调用部署任务、发送通知等
                        // 示例:build job: 'Release-Deployment', parameters: [[$class: 'StringParameterValue', name: 'BRANCH', value: newBranches[0]]]
                    } else {
                        echo "未发现新的发布分支"
                    }
                }
            }
        }
    }
}

注意事项

  • 正则表达式可根据实际需求调整,比如支持带前缀的版本号、多段版本号等。
  • 轮询时间需根据仓库规模和需求平衡,过于频繁会增加Jenkins和Git服务器的负载。
  • 如果使用多分支流水线,可在「分支来源」的「过滤」选项中设置分支名称正则,自动为符合规则的新分支创建流水线任务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:54:47