I need help setting up a github webhook with a localhost jenkins

9gm1akwq  于 2023-10-17  发布在  Jenkins
关注(0)|答案(3)|浏览(146)

我有:-一个公共的github仓库-一个localhost:8080 jenkins -一个连接到github仓库的java maven项目-一个连接到github仓库的jenkins作业我可以随时触发手动构建,但我希望在每次提交时触发一个构建推送到github仓库。

hgqdbh6s

hgqdbh6s1#

这里的问题是,您的本地主机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

here下载一个简单、轻量级的SocketXP代理,并将其安装在运行Jenkins的同一台本地主机上。请注意,您需要将其安装在运行Jenkins的主机上。
使用步骤#1中的JWT auth token通过以下命令登录SocketXP代理:

$ socketxp login < your-auth-token >

第三步:

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

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

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

7xllpg7q

7xllpg7q2#

如果你想在修改推送到GitHub时开始构建,你需要配置Github的Webhook:前往GitHub存储库并单击设置。单击Webhooks & Services选项卡,然后单击Add service下拉列表。选择Jenkins(GitHub插件)服务。最后,你的Jenkins hook URL:

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

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

ogq8wdun

ogq8wdun3#

在jenkins中的“Build Triggers”下有一个选项,您可以在其中勾选“Build when a change is pushed to GitHub”。这将轮询github仓库的任何更改。如果发现任何更改,将自动触发构建。

您也可以配置调度来轮询SCM。

相关问题