簡體   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