1. 程式人生 > >向GitLab提交程式碼之後自動觸發Jenkins構建

向GitLab提交程式碼之後自動觸發Jenkins構建

GitLab伺服器和Jenkins伺服器可以通過Web Hook的方式進行通訊。

1)在Jenkins伺服器中,安裝GitLab Plugin和GitLab Hook Plugin

2)開啟一個任務配置,構建觸發器中選擇"Build when a change is pushed to GitLab."記下GitLab webhook URL,使用時候將localhost替換成伺服器的ip地址。

3)在GitLab伺服器中,在目標project的Settings->Integrations中新增Web Hook。將Jenkins產生的GitLab webhook URL填入URL,其他選項使用預設設定,(在此之前,需要在Admin Area->Settings->Network->Outbound requests勾選允許本地請求)點選"Add webhook", webhook新增成功:

4) 點選下方Test,並選擇"Push events", 系統報錯,有許可權問題:Jenkins匿名使用者無Build許可權。

5)在Jenkins中修改安全策略(謹慎操作,確保操作使用者具有所有許可權):

系統管理->全域性安全配置->在安全矩陣中給予匿名使用者Build許可權

6)在GitLab中再次測試:

7) 在配置安全策略過程中出現了伺服器訪問報錯,使用者無法登入的情況,具體可參考:

主要思路是:通過修改~/.jenkins/config中authorizationStrategyclass的值(經重啟Jenkins伺服器生效),逐步改變Jenkins的安全策略,最終恢復正常狀態。