以下是我目前为项目设置的Jenkins:
此设置允许我在开发过程中持续自动交付以及持续反馈。前3个工作也运行所有测试和覆盖报告。
问题是我找不到从“所有开发分支”作业中排除主分支的方法。每次合并一个pull-request时,它都会不必要地构建master两次。
有人知道如何从Jenkins的工作中排除一个分支吗?
ps:我正在使用Git和Github插件。我的项目存储在Github上。
答案 0 :(得分:62)
您可以选择“反向”策略来定位分支以构建。
查看Jenkins作业配置,
(不要忘记用“master”填写“Branches to build”文本字段)
另见附件截图:
答案 1 :(得分:14)
您可以使用:^(?!.*master).*$
作为Jenkins中的分支说明符,并且将构建除master之外的所有分支。见答案:https://stackoverflow.com/a/18709097/444639
答案 2 :(得分:1)
您可以使用Repository,按名称过滤(通配符)。这里只提供:^(?!。 master)。 $。
或者你可以使用通配符过滤器分支并在那里排除master: 因为它成功扫描但后来从组织文件夹扫描中删除,以防您使用github或bitbucket团队项目。
答案 3 :(得分:0)
@Mike的答案适用于大多数情况,但请注意,:^(?!.*master).*$
将与不包含master的任何内容匹配,即,也不会建立名为feature/add-remaster-functionality
的分支。更好的方法是:^(?!.*^master$).*$
,仅匹配母版,甚至:^(?!.*^(master|origin/master)$).*$
,它匹配母版或原始/母版。