如何配置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
相关产品推荐
相关产品推荐

