Bitbucket 觸發內網 Jenkins Build



系統環境:

Bitbucket v4.5.2
Jenkins 2.60.3


在 Jenkins 上添加一個用來自動構建的用戶: autobuilder

如果需要,你可以調整 autobuilder 的用戶權限
系統管理 -》Configure Global Security -》 授權策略 -》項目矩陣授權策略

在項目中我們需要開啟 "觸發遠程構建",並輸入一個 "身份驗證令牌",該值你可以從 https://randomkeygen.com/ 輕松的生成一個合格的身份驗證令牌。

我們可以在紅色方框處獲得觸發遠程構建的URL, 替換 TOKEN_NAME 的值為:
http://192.168.0.218:8888/job/test-bitbucket/build?token=8PwPjSxOd1huEQZYpDr0qQJrCndcfxgu

我們還需要為這個URL添加認證信息,使用 autobuilder 用戶登錄 jenkins 服務器中,點擊右上角 "autobuilder" -》"設置" -》“Show API Token” 獲得該用戶的認證信息。

獲得上面的信息后后就可以拼出完整的 URL :
http://autobuilder:f245bb703a1b39594d1f4f48784ddd27@192.168.0.218:8888/job/test-bitbucket/build?token=8PwPjSxOd1huEQZYpDr0qQJrCndcfxgu

可以通過使用 curl 命令來測試

curl http://autobuilder:f245bb703a1b39594d1f4f48784ddd27@192.168.0.218:8888/job/test-bitbucket/build?token=8PwPjSxOd1huEQZYpDr0qQJrCndcfxgu

公司使用的 bitbucket 是在外網上的,內部的 Jenkins 無法被 bitbucket 訪問, 公司內部的公網IP,我們把公司的IP的 8888 端口通過路由器進行 NAT 映射到 192.168.0.218 的 8888 端口上
然后在外網的機器上使用 curl 來進行測試

curl http://autobuilder:f245bb703a1b39594d1f4f48784ddd27@替換你的公網IP:8888/job/test-bitbucket/build?token=8PwPjSxOd1huEQZYpDr0qQJrCndcfxgu

測試成功后,開始對 bitbucket 進行配置,首先添加插件,點擊 "管理" -》"尋找新插件",搜索 "hook" ,安裝 "HTTP-Request Hook for Bitbucket Server"

進入項目中,點擊 "Settings" -》“Hooks” -》啟用 "HTTP Request Post-Receive Hook",填入信息

注意:Username 填入 autobuilder,Password 填入 用戶的認證信息

當你向該 Bitbucket 項目的代碼庫中提交代碼,Bitbucket 在收到代碼推送后會使用我們在 Hooks 中設置的 URL 發送 http 請求,內網中的 Jenkins 服務器收到請求后觸發一個新的 Build。


bitbucket 版本 v6.3.2
jenkins 2.2221

bitbucket 版本更新后,插件管理中沒有了 HTTP-Request Hook for Bitbucket Server,可以使用 "Post Webhooks for Bitbucket" 這款免費插件代替。

url 處填入 http://autobuilder:f245bb703a1b39594d1f4f48784ddd27@192.168.0.218:8888/job/test-bitbucket/build?token=8PwPjSxOd1huEQZYpDr0qQJrCndcfxgu 保存即可


Jenkins -> 全局安全配置 -> 不勾選 "啟用代理兼容"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM