之前部署了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檔案已經發布過來了~