有没有办法将GitHub webhook分为三类:master,pull-request和其他什么?

时间:2016-02-24 11:15:15

标签: github jenkins

我想要完成的是以下Jenkins(http://jenkins-ci.org)作业配置:

  1. 有一组由{/ p>触发的<project>-master个工作

    • 推送到该特定项目的主分支。
    • 手动,点击&#34;立即构建&#34;
    • 使用REST API的脚本。

    我已经通过指定适当的refspec,添加了GitHub webhook等来实现了这一点。这非常简单。

  2. 有一组由{/ p>触发的<project>-pr个工作

    • GitHub PR创作。
    • 对PR的评论,触发GitHub Pull Request Builder。
    • 推动用于特定PR的分支。

    我让詹金斯做了前两个。但我发现没有办法从这个列表中做#3项目,因为GitHub插件无法轻易找到推送是否是PR分支。有什么想法可以做到吗?

  3. 有一组<project>-branch个任务由任意推送到任何分支触发。问题是我想要将push推送到master和用于PR的分支。我已经在互联网上查了几天可能的解决方案而且什么都没有,所以任何提示都会受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

  1. 对于只能通过更改主分支触发的作业,您不需要使用github webook。您可以使用git plugins分支指定指定此作业应仅为主分支运行。
  2. 根据建议设置作业以使用Github PUll Request Builder插件,它只会针对您列出的3个条件触发PR。

  3. 越难...... 据我所知,jenkins没有简单的方法可以知道分支是否有拉取请求,因为拉取请求是特定于github的,而jenkins分支检测只是使用git。

  4. 但是,根据我的经验,对于第三个选项,我设置了<project>-feature作业,并将其配置为匹配任何前缀为f/的分支。这样,如果开发人员希望测试自动执行其分支,但不想打开针对它的pull请求,他们可以创建像f/add_a_thing那样的分支,它会自动触发推送测试。为此,我将在作业配置中将分支说明符设置为f/*

    或者,git插件允许对分支说明符使用正则表达式参数。您可以使用正则表达式来专门忽略主分支。但是,忽略pull请求分支的唯一方法是让开发人员使用命名模式(例如pr/add_a_thing)来识别此分支将有一个拉取请求。