如何配置Jenkins仅构建PR与main分支,忽略其他分支?
Jenkins多分支流水线构建范围配置方案
需求明确
需要实现以下构建规则:
- 触发所有PR的构建
- 触发main分支的构建
- 忽略其他所有分支(避免AWS资源浪费)
问题分析
直接移除「Discover branches」会导致main分支无法构建;而给全局添加正则过滤(如^(?:.*main).*$)会同时过滤掉PR,因为PR对应的分支名通常不匹配该正则,且全局过滤会作用于所有发现的分支和PR。
正确配置步骤
- 保留Discover pull requests from origin行为,无需额外过滤(确保所有PR都会被发现并构建)。
- 添加Discover branches行为,并在该行为下添加**Filter by name (with regular expression)**子行为:
- 正则表达式设置为
^main$(精确匹配main分支,避免误匹配包含main字符串的其他分支)。
- 正则表达式设置为
- 不要在多分支流水线的根行为层级添加全局过滤规则。
效果验证
配置完成后,Jenkins会:
- 自动发现并构建所有PR
- 自动发现并构建main分支
- 忽略其他所有分支,不会触发不必要的构建
内容的提问来源于stack exchange,提问作者parsley72
相关产品推荐
相关产品推荐

