Jenkins multibranch pipeline分支名称过滤功能不生效如何解决?
配置错误原因及解决方案
1. 过滤规则逻辑顺序配置错误
Jenkins多分支流水线的名称过滤遵循从上到下依次匹配,匹配到第一条规则即生效,未匹配到任何规则时默认允许所有内容的逻辑。
你仅配置了一条Exact Name: foobar的规则,没有添加兜底排除规则,所有未匹配到foobar的分支/标签最终会走默认允许逻辑,因此全部显示满足条件。
正确配置顺序为:
- 先添加所有需要保留内容的规则:动作选
Include,匹配方式和值按需求填写(比如Exact Name: foobar) - 最后添加一条兜底排除规则:动作选
Exclude,匹配方式选Wildcard,值填*,所有未被前面规则匹配的内容都会被排除
同时确认你规则的动作字段没有选反:需要保留匹配内容选Include,需要排除匹配内容选Exclude。
2. 过滤规则作用域配置错误
分支和标签的过滤规则是完全独立的配置项:
- 你配置的分支过滤规则仅对
Discover branches发现的分支内容生效 - 标签的过滤规则需要在
Discover tags的对应配置区域单独配置,不会复用分支过滤规则,如果未配置标签过滤默认会允许所有标签被发现。
3. 插件版本存在已知Bug
如果你使用的Bitbucket Branch Source插件版本低于7.2.0,或者Git插件版本低于4.11.0,存在过滤规则不生效的已知问题,升级对应插件到最新稳定版后重新扫描即可验证。
验证方式
调整配置后重新执行「立即扫描多分支流水线」,不需要的分支/标签会在扫描日志中显示Did not meet criteria,不会被创建任务调度构建。
内容的提问来源于stack exchange,提问作者John Q Citizen
相关产品推荐
相关产品推荐

