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

Dej*_*kic 9 github jenkins

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

  1. 有一组<project>-master工作由触发

    • 推送到该特定项目的主分支.
    • 通过点击"立即构建"手动
    • 通过使用REST API的脚本.

    我通过指定适当的refspec,添加了GitHub webhook等来完成了这个.它非常简单.

  2. 有一组<project>-pr工作由触发

    • GitHub公关创作.
    • 对PR的注释,触发GitHub Pull Request Builder.
    • 推送到用于特定PR的分支.

    我让Jenkins做了前两个.但我发现无法从此列表中执行#3项目,因为GitHub插件无法轻易找到推送是否是PR分支.有什么想法可以做到这一点?

  3. 有一组<project>-branch由任何推动任何分支触发的工作.问题是我想要将push推送到master和用于PR的分支.我已经在互联网上寻找了几天可能的解决方案而且什么都没有,所以任何提示都会非常感激.

Jef*_*eff 2

  1. 对于仅由 master 分支的更改触发的作业,您不需要弄乱 github webook。您可以只使用 git plugins 分支指定来指定此作业应该仅针对 master 分支运行。
  2. 按照建议设置一个作业以使用 Github PUll Request Builder 插件,它只会针对您列出的 3 个条件触发 PR。

  3. 据我所知,jenkins 没有简单的方法来知道分支是否有 pull request,因为 pull request 是特定于 github 的,而 jenkins 分支检测只是使用 git。

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

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