在Jenkins上不使用插件進行Git系統Webhook觸發集成

  • 2019 年 10 月 6 日
  • 筆記

最近使用到Jenkins來進行持續集成,代碼庫在自建的Gitlab上,而Jenkins里已有提供GitLab Plugin插件,很方便地就完成了部署。但是若使用其它的例如阿里雲Code和騰訊雲TGit系統卻沒有對應的插件,網上也沒有好的解決方案。嘗試使用過Generic Webhook Trigger Plugin,但是多個項目都使用的話,會把所有項目都觸發構建。

因為我的需求比較簡單,只需響應Push請求然後拉取代碼發佈到FTP上,後來決定直接使用「觸發遠程構建(例如,使用腳本)」這個系統自帶觸發器,步驟如下:

  1. 由於我的Jenkins系統設定了必須登錄,觸發時需要身份驗證,於是新建一個Jenkins用戶用於Webhook,賦予Overall Read、Job Create&Discover&Read權限(也可使用管理員帳號,但是為了系統安全,還是建了一個低權限的帳號用於Webhook)
  2. 在項目配置的構建觸發器中勾選「觸發遠程構建 (例如,使用腳本)」,由於使用Webhook時直接登錄帳號,身份驗證令牌可不填。記錄下Use the following URL to trigger build remotely:後的URL即可。?token=TOKEN_NAME可省略
  3. 登錄Git平台,在Webhook配置中填寫上一步的URL並帶上登錄驗證信息,勾選勾選Push events,最終URL類似於如下: > http://USERNAME:PASSWORD@JENKINS_HOST/job/JOB_NAME/build
  4. 完成,當代碼Push上Git系統時,Jenkins將執行構建