如何禁用Multibranch Jenkins构建中的某些分支?


10

我有一个多分支作业集,可以使用Jenkinsfile运行任何分支。

如果要从多分支管道运行的作业列表中删除分支,我可以考虑一些选择。

  1. 我可以删除分支
  2. 我可以在该分支中删除Jenkinsfile

第二个解决方案是好的,除了我需要提交该分支并将其推送到我的分支的git repo上,并且如果该分支合并到另一个分支中,它将使Jenkinsfile消失。

禁用多分支管道的某些分支的最佳方法是什么?

Answers:


17

Jenkins可以使用通配符或正则表达式按名称过滤多分支管道中的分支。

詹金斯过滤器分支


在Jenkinsfile中执行此操作的任何方法(因此可重现)?
xjcl

1
是的,您可以when { anyOf { branch 'master'; branch 'release/**' } }在任何阶段(声明式)或if (env.BRANCH_NAME == 'master' || (env.BRANCH_NAME).startsWith('release/')) {}脚本管道(几乎任何位置)内添加。对于第一种选择,jenkins.io / doc / book / pipeline / syntax /#when中提供了更多功能。无论如何,最好的方法是在多分支管道插件中进行配置,如答案中所述。
biolauri

-1

只需删除您不想为其提供相应分支作业的分支上的Jenkinsfile。这将删除分支作业(当然,前提是您已适当设置“孤立项目策略”)。

从Jenkins多分支管道项目的角度来看,这与删除分支具有相同的效果。这是因为它只是扫描包含Jenkinsfiles的分支作为何时创建(或删除)相应分支作业的标准。

如果/当您再次需要分支作业时,还原提交以还原Jenkinsfile。


这是太多的工作。创建分支并删除文件时,您无缘无故更改了GIT历史记录。在Jenkins级别进行过滤要好得多,因此您无需执行任何操作。
casey vega
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.