我需要帮助设置本地Jenkins与Github Webhook的连接。

12

我有以下内容: - 一个公共的Github代码库 - 一个本地的localhost:8080 Jenkins服务器 - 与Github代码库相连的Java Maven项目 - 与Github仓库相连的Jenkins任务 我能够随时手动触发构建,但我想在每次提交到Github代码库时自动触发构建。

3个回答

4
问题在于您的本地 Jenkins 服务器(没有公共 IP 地址)位于防火墙和/或 NAT 后面,因此 GitHub webhook 无法传递到您的本地 Jenkins 服务器。
为了使您的公共 GitHub 存储库与您的本地 Jenkins 服务器通信(位于防火墙和 NAT 后面等),您需要使用一个名为 SocketXP 的免费 webhook 代理服务。SocketXP 可以帮助在公共 GitHub 和私有 Jenkins 服务器之间创建一个安全的 webhook 中继隧道,通过该中继 SocketXP 将 webhook 通知从公共 GitHub 代理到您的本地 Jenkins。
SocketXP 将为您的 Jenkins 服务器创建一个唯一的公共 URL,您可以使用它来配置 GitHub Webhook 设置。
以下是安装和运行 SocketXP 在您的 Jenkins 服务器上所需的 3 个简单步骤:
第一步:
SocketXP 上注册免费帐户。获取专门为您分配的唯一 JWT 认证令牌。
第二步:

这里下载一个简单、轻量级的SocketXP代理程序,并将其安装在运行Jenkins的同一本地主机上。请注意,您需要将其安装在运行Jenkins的主机上。

使用第一步中的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&Services”选项卡,然后单击“添加服务”下拉菜单。选择Jenkins(GitHub插件)服务。 最后,输入您的Jenkins挂钩URL:

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

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

2
在Jenkins中,“构建触发器”下有一个选项,您可以勾选“当GitHub推送更改时构建”。这将轮询GitHub存储库以查找任何更改。如果发现任何更改,将自动触发构建。

Build Triggers

你可以配置计划以轮询SCM。

“当 GitHub 推送更改时构建”选项已被勾选,但是没有触发任何构建,这就是我卡住的地方。 - jackoo
你在“源代码管理”下设置了git的配置吗?能否请你更新一下你的问题,并附上Jenkins配置的截图? - Atri
你的代码库链接有误,应该以.git结尾。我想这是你要找的链接 https://github.com/gneamt/mavg.git - Atri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接