2014-01-23 53 views
33

这里排除的Git分支是我当前的詹金斯设置为一个项目:如何从建设詹金斯

  • 一个作业运行所有开发分支
  • 一个作业运行的所有拉请求
  • 一个作业运行只有主人分支
  • 只有当主人通过时,一项工作才会自动发布

此设置允许我在开发过程中持续进行自动交付并持续提供反馈。前3个工作也运行所有测试和覆盖报告。

问题是,我找不到从“所有开发分支”作业中排除主分支的方法。每次合并请求时,它都会不必要地建立主设备两次。

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

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

+0

查看工作解决方案:http://stackoverflow.com/questions/17155249/jenkins-gerrit-trigger-on-all-branches-except-master –

回答

56

您可以选择“反向”策略来定向要建立的分支。

退房詹金斯作业配置,

  • “源代码管理” 部分(选择 “混帐”)
  • 其他行为
  • 点击 “添加” 按钮
  • 选择“战略选择是什么构建“
  • 在组合框中选择”反向“策略。

(不要忘记填写的 “大师”, “分行打造” 文本字段)

参见附件截图图片:


enter image description here

+2

我想知道,这是否适合您?因为,显然,[反向战略是破坏了github插件](http://stackoverflow.com/questions/16323749/jenkins-github-plugin-inverse-branches)。 –

+1

@ marc.guenther当然这对我来说很有用。 – kyanny

+0

@kyanny它仍然不适合我。你有没有得到解决方案? –

12

你可以在Jenkins中使用:^(?!.*master).*$作为分支说明符,除master之外的所有分支都将被构建。请参阅回答:https://stackoverflow.com/a/18709097/444639

+1

这对我有用,最好的答案不是。 –

+0

这也构建了'refs/tags/2018.02.14'这样的标签,这可能是不需要的。 – styfle

1

您可以使用存储库,按名称筛选(通配符)。这里只需提供:^(?!master)。 $。 skipmaster1

,或者您可以使用通配符使用过滤器的分支,并排除主有:skipmaster2 ,因为它扫描成功,但后来从组织文件夹扫描删除您正在使用的github或到位桶团队项目情况。 enter image description here