jenkins獲取gitlab程式碼自動構建流程
阿新 • • 發佈:2020-09-23
目錄
一、建立專案
1.建立專案
1)建立新任務
2)填寫專案名稱
3)填寫專案備註
4)專案執行過程新增一個命令
5)構建專案
6)檢視構建過程
7)檢視伺服器檔案(對應建立了一個檔案)
二、jenkins獲取git專案
1.到碼雲網站獲去原始碼
https://gitee.com/lovexzq/XingYunDaZhuanPan?_from=gitee_search
2.把程式碼匯入gitlab
1)建立新專案
2)匯入專案
3)複製程式碼ssh匯入
這邊僅作為顯示,可在碼雲中找到開原始碼,進行程式碼拉取
4)匯入程式碼
3.jenkins獲取專案程式碼
1)jenkins與gitlab做免密
1.jenkins生成金鑰對 [root@jenkins ~]# ssh-keygen 2.將在jenkins中公鑰寫入gitlab,相當於jenkins能對gitlab進行操作 3.此處僅作為對此專案有可控許可權
2)jenkins配置獲取git的程式碼
3)構建拉取程式碼
4)檢視程式碼拉取到伺服器
三、jenkins構建程式碼推送至web伺服器
1.搭建nginx
2.jenkins寫指令碼推送程式碼
- 1)jenkins伺服器與web伺服器做免密
[root@jenkins ~]# ssh-copy-id 172.16.1.7
- 2)測試連線
[root@jenkins jenkins獲取git的程式碼專案]# ssh 172.16.1.7 Last login: Wed Sep 23 23:21:29 2020 from 10.0.0.1 [root@web01 ~]# logout Connection to 172.16.1.7 closed.
- 3)jenkins配置推送程式碼指令碼
[root@jenkins ~]# mkdir /scripts
[root@jenkins ~]# vim /scripts/code.sh
#!/bin/bash
Web_Ip=10.0.0.7
Old_Code_Dir=/tmp/${JOB_NAME}_$BUILD_NUMBER
ssh root@$Web_Ip "[ -d $Old_Code_Dir ] || mkdir -p $Old_Code_Dir"
ssh root@$Web_Ip "mv /code/* $Old_Code_Dir/"
scp -rp $WORKSPACE/* root@${Web_Ip}:/code/
[root@jenkins ~]# chmod +x /scripts/code.sh
- 4)jenkins頁面配置推送
-
5)構建測試
-
6)訪問頁面測試
3.程式碼回滾
- 1)配置指令碼
# 通過書寫指令碼方式實現部署和回滾功能,因指令碼中case語句有兩種選擇,所以在後續jenkins構建時同樣需要選擇兩種方式
[root@jenkins ~]# vim /scripts/deploy_rollback.sh
#!/bin/bash
Web_Ip=172.16.1.7
Old_Code_Dir="/tmp/${JOB_NAME}/$BUILD_NUMBER"
case $Status in
Deploy)
echo "Status:$Status"
ssh root@$Web_Ip "[ -d $Old_Code_Dir ] || mkdir -p $Old_Code_Dir"
ssh root@$Web_Ip "mv /code/* $Old_Code_Dir"
scp -rp $WORKSPACE/* root@${Web_Ip}:/code/
echo "Completing!"
;;
Rollback)
echo "Status:$Status"
echo "Version:$Version"
ssh root@$Web_Ip "[ -d $Old_Code_Dir ] || mkdir -p $Old_Code_Dir"
ssh root@$Web_Ip "/usr/bin/cp -a /tmp/${JOB_NAME}/$Version/* /code/"
;;
*)
exit
;;
esac
- 2)jenkins頁面配置
- 3)測試程式碼更新
- 4)測試回滾
四、觸發器自動構建
1.配置觸發器
2.配置gitlab
3.測試
-
1)測試事件
-
2)出現問題
- 3)解決方式配置jenkins安全
-
4)修改gitlab程式碼
-
5)頁面自動構建
五、返回構建結果
1.設定gitlab獲取token
2.jenkins配置token
3.jenkin設定構建後操作
4.測試
-
1)修改程式碼提交
-
2)檢視jekins自動構建
- 3)檢視gitlab上面jenkins構建返回的結果