[英]I need help setting up a github webhook with a localhost jenkins
我有: - 公共 github 存储库 - localhost:8080 jenkins - 连接到 github 存储库的 java maven 项目 - 连接到 github 存储库的 jenkins 作业我可以随时触发手动构建,但我想触发构建在每次提交时推送到 github 存储库。
如果您想在将更改推送到 GitHub 时开始构建,您需要配置 Github 的 Webhook:转到 GitHub 存储库并单击设置。 单击 Webhooks 和服务选项卡,然后单击添加服务下拉列表。 选择 Jenkins(GitHub 插件)服务。 最后,您的 Jenkins 挂钩网址:
http://JENKINS.SERVER.IP.ADDRESS:8080/github-webhook/
因此,您需要一个公共 IP 地址或 DNS 以允许 GitHub 触发您的 Jenkins 构建。
这里的问题是您的 localhost Jenkins 服务器(没有任何公共 IP 地址)位于防火墙和/或 NAT 后面,因此无法将 GitHub webhook 传送到您的 localhost Jeninks 服务器。
为了让您的公共 GitHub 存储库与您的 localhost Jenkins 服务器(在防火墙和 NAT 等后面)通信,您需要使用一个名为SocketXP的免费 webhook 代理服务。 SocketXP 帮助在公共 GitHub 和您的私有 Jenkins 服务器之间创建一个安全的 webhook 中继隧道,SocketXP 将通过该隧道将来自公共 GitHub 的 webhook 通知代理到您的本地主机 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 步:
使用以下命令为您的 localhost Jenkins 服务器获取唯一的公共 URL。
$ socketxp relay https://localhost:8080/github-webhook/
Public URL -> https://webhook.socketxp.com/adfasdfae4123-webhook-relay
使用上面唯一的公共 URL (仅为您的 localhost jenkins 服务器创建)来配置您的 GitHub webhook 设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.