[英]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.