我需要帮助使用本地主机 jenkins 设置 github webhook

问题描述 投票:0回答:4

我有: - 公共 github 存储库 - 本地主机:8080 詹金斯 - 连接到 github 存储库的 java maven 项目 - 连接到 github 存储库的 jenkins 作业 我可以随时触发手动构建,但我希望在每次提交推送到 github 存储库时触发构建。

git github jenkins localhost hook
4个回答
4
投票

这里的问题是您的本地主机 Jenkins 服务器(没有任何公共 IP 地址)位于防火墙和/或 NAT 后面,因此 GitHub Webhook 无法传递到您的本地主机 Jeninks 服务器。

为了使您的公共 GitHub 存储库与本地 Jenkins 服务器(在防火墙和 NAT 等后面)通信,您需要使用名为 SocketXP 的免费 Webhook 代理服务。 SocketXP 帮助在公共 GitHub 和您的私有 Jenkins 服务器之间创建安全的 Webhook 中继隧道,通过该隧道 SocketXP 将 Webhook 通知从公共 GitHub 代理到您的本地主机 Jenkins。

SocketXP 将为您的 Jenkins 服务器创建一个唯一的公共 URL,您稍后可以使用它来配置 GitHub Webhook 设置。

以下是在 Jenkins 服务器上安装和运行 SocketXP 的 3 个简单步骤:

步骤#1:

使用 SocketXP 注册免费帐户。获取专为您分配的唯一 JWT 身份验证令牌。

步骤#2

此处下载简单、轻量级的 SocketXP 代理,并将其安装在运行 Jenkins 的同一台本地主机计算机上。请注意,您需要将其安装在运行 Jenkins 的主机上。

使用步骤 #1 中的 JWT 身份验证令牌通过以下命令登录 SocketXP 代理:

$ socketxp login < your-auth-token > 

步骤#3:

使用以下命令获取本地 Jenkins 服务器的唯一公共 URL。

$ socketxp relay https://localhost:8080/github-webhook/
Public URL ->  https://webhook.socketxp.com/adfasdfae4123-webhook-relay

使用上面唯一的公共 URL(专为您的本地主机 jenkins 服务器创建)来配置您的 GitHub webhook 设置。


3
投票

如果您想在将更改推送到 GitHub 时启动构建,您需要配置 Github 的 Webhook: 前往 GitHub 存储库并单击“设置”。单击“Webhooks 和服务”选项卡,然后单击“添加服务”下拉列表。选择 Jenkins(GitHub 插件)服务。 最后,您的 Jenkins 挂钩网址:

http://JENKINS.SERVER.IP.ADDRESS:8080/github-webhook/

因此,您需要一个公共 IP 地址或 DNS 来允许 GitHub 触发您的 Jenkins 构建。


2
投票

jenkins 中的“构建触发器”下有一个选项,您可以在其中勾选“将更改推送到 GitHub 时构建”。这将轮询 github 存储库是否有任何更改。如果发现任何更改,将自动触发构建。

您也可以配置轮询 SCM 的时间表。


0
投票

我已经用 ngrok 修复了同样的问题,你可以观看这个 YouTube 视频 https://www.youtube.com/watch?v=eGSK0oxYrS8

© www.soinside.com 2019 - 2024. All rights reserved.