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