一、創建項目
填寫項目名,關系到項目路徑對應請謹慎命名
二、項目配置
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序號