如何从Jenkins的建筑中排除git分支

Car*_*iro 39 git jenkins

这是我目前为项目设置的Jenkins:

  • 一个工作运行所有开发分支
  • 一个作业运行所有拉请求
  • 一个作业运行分支
  • 一个作业仅在主要通过时才进行自动发布

这种设置使我可以在开发过程中持续自动交付以及持续反馈.前3个工作也运行所有测试和覆盖报告.

问题是我找不到从"所有开发分支"工作中排除主分支的方法.每次合并一个pull-request时,它都会不必要地构建master两次.

有谁知道如何从詹金斯的工作中排除一个分支?

ps:我正在使用Git和Github插件.我的项目存储在Github上.

kya*_*nny 64

您可以选择"反向"策略来定位分支以构建.

查看Jenkins的工作配置,

  • "源代码管理"部分(选择"Git")
  • 附加行为
  • 单击"添加"按钮
  • 选择"选择建造什么的策略"
  • 在组合框中选择"反向"策略.

(不要忘记用"master"填写"Branches to build"文本字段)

另见附件截图图片:


在此输入图像描述

  • 我想知道,这对你有用吗?因为,显然,[逆向策略在github插件中被破坏](http://stackoverflow.com/questions/16323749/jenkins-github-plugin-inverse-branches). (2认同)

Mik*_*der 17

您可以:^(?!.*master).*$在Jenkins中使用分支说明符,并且将构建除master之外的所有分支.见答案:https://stackoverflow.com/a/18709097/444639


sas*_*alm 5

@Mike 的答案适用于大多数情况,但请注意,它:^(?!.*master).*$会匹配任何不包含 master 的内容,即feature/add-remaster-functionality也不会构建名为的分支。更好的方法是:^(?!.*^master$).*$哪个只匹配 master,甚至:^(?!.*^(master|origin/master)$).*$哪个匹配 master 或 origin/master。