在 github 上打开 PR 时如何触发本地 Jenkins 作业
How to trigger an on-prem Jenkins job when opening a PR on github
我有一个 public Github 存储库和一个本地 Jenkins 服务器(无法更改)
我希望每次在 github 存储库中打开 PR 时启动 Jenkins 作业。
现在,如果我的 Jenkins 有 public 访问权限,我将简单地在 github 上设置一个 webhook,但是由于 github 无法访问我的 Jenkins 我该怎么做才能触发工作?
是否可以选择相反的方式设置 webhook?这意味着 Jenkins 将每隔 seconds/minutes 检查一次 PR 是否打开,如果打开,它将触发作业。
您可以配置 GitHub Pull Request Builder 插件来轮询 PR 参考规范,尽管它的工作方式与使用 webhooks 有所不同。
或者,假设您具有从 on-premise 环境到外部的连接,您可以设置 ngrok / webhook relay / smee to have a publicly-accessible address that forwards GitHub webhooks. CloudBees have a video on forwarding webhooks using ngrok。
如果可以使用 DMZ,则使用 GitWebhookProxy、stunnel 或 SSH 等隧道也是不错的选择。
我有一个 public Github 存储库和一个本地 Jenkins 服务器(无法更改)
我希望每次在 github 存储库中打开 PR 时启动 Jenkins 作业。
现在,如果我的 Jenkins 有 public 访问权限,我将简单地在 github 上设置一个 webhook,但是由于 github 无法访问我的 Jenkins 我该怎么做才能触发工作?
是否可以选择相反的方式设置 webhook?这意味着 Jenkins 将每隔 seconds/minutes 检查一次 PR 是否打开,如果打开,它将触发作业。
您可以配置 GitHub Pull Request Builder 插件来轮询 PR 参考规范,尽管它的工作方式与使用 webhooks 有所不同。
或者,假设您具有从 on-premise 环境到外部的连接,您可以设置 ngrok / webhook relay / smee to have a publicly-accessible address that forwards GitHub webhooks. CloudBees have a video on forwarding webhooks using ngrok。
如果可以使用 DMZ,则使用 GitWebhookProxy、stunnel 或 SSH 等隧道也是不错的选择。