繁体   English   中英

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

[英]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 构建。

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

构建触发器

您也可以配置计划来轮询 SCM。

这里的问题是您的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM