zoukankan      html  css  js  c++  java
  • 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序号

  • 相关阅读:
    2011 ACM-ICPC 成都赛区解题报告(转)
    Subarray Sorting (线段树)
    sample
    gamma correction / /alpha blend
    mipmap
    antialiasing
    汇编指令
    zfighting 的问题
    勉励自己
    Ambient Occulution
  • 原文地址:https://www.cnblogs.com/cutesnow/p/13807186.html
Copyright © 2011-2022 走看看