CI/CD版本回滾Jenkins解決方案


一、創建項目

填寫項目名,關系到項目路徑對應請謹慎命名

二、項目配置

1.配置字符串參數和選項參數

 

 

2.代碼倉庫配置

3.構建環境

4.構築腳本配置

5.點擊左下方的保存或者應用

三、使用方法

1.發布回退流程

2.查看歷史發布信息

四、基礎腳本(會自動對應到所在項目或項目文件夾):

 1 TmpDir=${WORKSPACE}
 2 Date=$(date "+%Y%m%d-%H%M%S")
 3 LogFile=/var/log/deploy/"$Status"_$(date "+%Y%m%d").log
 4 
 5 case $Status  in
 6   Deploy)    
 7     path="/bak$TmpDir/$Time"      #創建每次要備份的目錄
 8     if [ -d $path ];
 9     then
10         echo "The files is already  exists " >> $LogFile
11     else
12         mkdir -p  $path
13         chmod 777 $path
14     fi
15     \cp -rf $TmpDir/* $path        #將打包好的文件備份到相應目錄,覆蓋已存在的目標
16     echo "$Date Completing! Project:${WORKSPACE} Status:$Status Version: $Time BuildNum:${BUILD_NUMBER}" >> $LogFile
17     ;;
18   Rollback)
19       cd /bak$TmpDir/$Time            #進入備份目錄
20       \cp -rf * $TmpDir/       #將備份拷貝到程序打包目錄中,並覆蓋之前的包
21       echo "$Date Completing! Project:${WORKSPACE} Status:$Status Version:$Time BuildNum:${BUILD_NUMBER}" >> $LogFile
22       ;;
23   *)
24   exit
25       ;;
26 esac
27 
28 ReservedNum=30  #保留文件數
29 FileDir="/bak$TmpDir/"
30 
31 cd $FileDir   #進入備份目錄
32 FileNum=$(ls -l | grep '^d' | wc -l)   #當前有幾個文件夾,即幾個備份
33 
34 while(( $FileNum > $ReservedNum))
35 do
36     OldFile=$(ls -rt | head -1)         #獲取最舊的那個備份文件夾
37     echo  $date "$Date Delete File:"$OldFile >> $LogFile
38     rm -rf $FileDir/$OldFile
39     let "FileNum--"
40 done 
41 
42 # 下面放具體項目發布腳本指令(即由ci服務器分發到線上服務)
 

五、相關須知:

*ci 回退備份文件目錄 /bak/var/lib/jenkins/workspace/xxx項目名/

需要時可手動查找相關版本項目文件,目前腳本內只保留單項目或目錄30份備份文件,可根據需要更改腳本內參數30為既定量

*ci 發布回退日志文件目錄 /var/log/deploy/ 會記錄當天的發布和回退情況

示例:

20201012-165752 Completing! Project:/var/lib/jenkins/workspace/test-ci-backend Status:Deploy Version: 2020101224 BuildNum:84

20201012-164711 Completing! Project:/var/lib/jenkins/workspace/test-ci-backend Status:Rollback Version:2020101221 BuildNum:83

對應了秒級項目發布時間,項目所在位置即哪個項目,發布回退狀態,發布和回退時填寫時間版本號,發布的序號對應jenkins序號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM