Gitlab利用Webhook實現Push程式碼後的jenkins自動構建

天府雲創發表於2018-06-12

 

之前部署了Gitlab的程式碼託管平臺和Jenkins的程式碼釋出平臺。通常是開發後的程式碼先推到Gitlab上管理,然後在Jenkins裡通過指令碼構建程式碼釋出。這種方式每次在發版的時候,需要人工去執行jenkins上的構建動作,有時顯得過於繁瑣。於是就想到了Gitlab的Webhook功能,通過Webhook的相關設定,可以實現程式碼Push後,自動去觸發jenkins上的構建動作,這樣就不需要人工干預去執行發版操作了。設定如下:

1)Jenkins上的操作
通常,jenkins在專案配置時是可以配置遠端構建觸發器,設定好jenkins的回撥url後就可以讓jenkins進行自動構建。這就需要先下載Gitlab Hook Plugin 外掛。登陸Jenkins,分別點選"系統管理"->"外掛管理"->"可選外掛",選擇Gitlab Hook Plugin

然後構建相應的專案工程,比如下面的test-wx(下面最關鍵的是第2步中檢視url,然後用這個url回撥地址去Gitlab的webhook上新增)
a)先設定程式碼的git下載路徑,這裡通過ssh方式(需要提前將Jenkins本機的key新增到Gitlab上)

b)檢視jenkin生成回撥地址。在任務重構建觸發器下獲取回撥URL。下面的URL那一行只有Gitlab Hook Plugin外掛下載成功後才能顯示。

c)然後設定程式碼釋出的推送指令碼

2)Gitlab上的操作
登陸Gitlab上的testwx3專案中,新增webhook(用上面Jenkins中生成的回撥url)

然後點選這個專案的"Settings"

新增成功後,點選此webhook後面的test進行測試

如果返回Hook successfully executed.表示配置成功。
這樣,下次push程式碼後,就會自動觸發jenkins上相關的構建工程進行自動釋出了!無需人工干預~

------------------------------------------------------------------------------------------------------
如上設定後,比如在gitlab的testwx3專案程式碼庫中push一個test.txt檔案,然後測試下是否自動釋出了

然後去Jenkins上檢視,如下發現已經自動釋出了!

最後去目標機器192.168.1.19的/tmp/testwx目錄下發現test.txt檔案已經發布過來了~

相關文章