一、整體流程
二、Jenkins 配置
2.1、首先安裝插件
- Gitlab Hook Plugin
- GitLab Plugin
- Publish Over SSH
2.2、配置目標服務器
系統管理 ---> 系統設置 ---> Publish over SSH
如果不想使用密鑰認證登陸,也可以使用 賬戶密碼登陸。
2.3、創建 job
我們創建一個自由風格的 job,配置好 git 源,這裏也可以配置無密鑰登陸,我這裏使用賬戶密碼。
創建觸發器,用於自動構建,我們需要把其中的 url 添加到我們的 gitlab 上面,提交代碼,可以觸發構建,稍後演示。
填寫構建內容。
2.4、配置 gitlab 觸發
gitlab 的 webhooks url 是根據 jenkins 構建權限連接設置的,如果必須登錄才能構建就必須獲取 jenkins 的用戶名及token,可以在jenkins用戶--->設置裏面查看到 ,url格式:
http://<username>:<api-token>@<jenkins-server>/
首先去生成 token。
然後我的觸發URL如下:
http://user:[email protected]/jenkins/project/banana.xxxxxx.net
最後測試一下,看看是不是正確。
如果沒有添加用戶信息認證,可能會報下面的錯誤:
三、改進
既然我們是純靜態的文件,不需要構建,爲啥不直接傳遞命令,在服務器上面 git 的呢,這樣速度更快,之前還需要把代碼從源倉庫拉下來,然後整個傳到相應的目錄下面,過程比較慢。
我們調整 Job 去掉源,然後把構建項目修改爲如下:
如果大家使用 http 協議的 git 拉取代碼,會每次讓輸入賬號密碼,我們可以使用下面命令對認證信息進行保存:
git config --global credential.helper store