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

如何配置Jenkins PR任务仅在特定分支发起并合并到指定分支时触发

配置Jenkins PR任务仅在指定源分支和目标分支时触发

方法一:通过PR触发插件可视化配置

如果你的任务用的是GitHub Pull Request Builder或类似PR触发插件,直接在任务配置页做以下设置:

  • 找到PR触发规则区域,添加源分支过滤:用正则精确匹配 ^refs/heads/B_A$(确保只有B_A分支发起的PR能触发)
  • 添加目标分支过滤:用正则精确匹配 ^refs/heads/B_B$(确保只有合并到B_B的PR能触发)
  • 确认两个过滤规则为逻辑与关系(大部分插件默认就是这个逻辑,若不是则手动设置)

方法二:Pipeline脚本中添加条件判断

如果是Pipeline任务,直接在脚本开头添加分支校验逻辑,不符合条件就终止任务:

pipeline {
    agent any
    triggers {
        githubPullRequest() // 根据你的托管平台替换对应触发器,比如gitlab()
    }
    stages {
        stage('校验PR分支条件') {
            steps {
                script {
                    def sourceBranch = env.CHANGE_BRANCH
                    def targetBranch = env.CHANGE_TARGET
                    
                    if (!(sourceBranch == 'B_A' && targetBranch == 'B_B')) {
                        error "终止执行:PR需从B_A发起并合并到B_B,当前源分支: ${sourceBranch},目标分支: ${targetBranch}"
                    }
                }
            }
        }
        // 下面写你的实际构建/测试步骤
        stage('构建') {
            steps {
                echo '执行构建操作...'
            }
        }
    }
}

注意事项

  • 不同代码托管平台的环境变量可能有差异,比如GitLab的源分支变量是 CI_MERGE_REQUEST_SOURCE_BRANCH_NAME,目标分支是 CI_MERGE_REQUEST_TARGET_BRANCH_NAME,根据实际情况替换
  • 正则匹配时用 ^ 和 $ 是为了精确匹配分支名,避免匹配到类似B_A_v1这种分支

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 11:50:00