Jenkins版本回滚

一、新建一个自由风格项目
 
image.png
二、配置参数化构建过程
  1. 添加选项参数


     
    image.png

    填入以下内容


     
    image.png

    2.添加字符参数
     
    image.png
三、配置SVN
 
image.png
四、配置构建步骤
1. maven打包配置
  • 选择调用顶层Maven目标,Maven版本之前已经在全局工具配置中设置过,目标中填入打包命令


     
    image.png
2. 执行shell配置
  • 此脚本为打包备份,回滚脚本


     
    image.png

    填入以下脚本


     
     

    这里 ${WORKSPACE}、${JOB_NAME}、${BUILD_NUMBER}都是jenkins内置变量,这里我把官网的翻译贴出来:

    BUILD_NUMBER
    当前版本号,例如:153
    JOB_NAME
    此版本的项目名称
    WORKSPACE
    作为工作空间分配给构建目录的绝对路径。

    脚本具体内容不难,就是如果选择“Deploy”就执行创建文件夹(用于保存压缩后的文件),然后执行压缩文件,后面我加了一个超过设定时间,就删除文件的句子。因为怕文件太多,占用空间。
    如果选择”RollBACK”,获取到要回滚的BUILD_NUMBER,查找到文件内容包含 BUILD_NUMBER的压缩文件,我就把这个文件复制成为最新的构建文件。
    ————————————————
    版权声明:本文为CSDN博主「aaron是我啊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/leo15561050003/article/details/79818176

     
     
    备份回滚脚本
case $Status  in
  Deploy)
    echo "Status:$Status"
    path="${WORKSPACE}/bak/${BUILD_NUMBER}"      #创建每次要备份的目录
    if [ -d $path ];
    then
        echo "The files is already  exists "
    else
        mkdir -p  $path
    fi
    \cp -f ${WORKSPACE}/target/*.war $path        #将打包好的war包备份到相应目录,覆盖已存在的目标
    echo "Completing!"
    ;;
  Rollback)
      echo "Status:$Status"
      echo "Version:$Version"
      cd ${WORKSPACE}/bak/$Version            #进入备份目录
      \cp -f *.war ${WORKSPACE}/target/       #将备份拷贝到程序打包目录中,并覆盖之前的war包
      ;;
  *)
  exit
      ;;
esac

 

  • 这样发布后以后,就会备份如下


     
    image.png

     
    image.png
3. 定期删除脚本
  • 项目备份不可能无限制备份,这样很快就会占满磁盘,所以我们必须有清除老旧备份的机制。此处配置一个脚本,每次发布都执行一次,判断备份数是否超过5个,如果超过,则删除老旧备份,只保留最新的5个。
  • 再添加一个执行shell步骤,填入以下脚本,其中备份数量可以自行修改减小或加大


     
    删除老旧备份脚本
ReservedNum=5  #保留文件数
FileDir=${WORKSPACE}/bak/
date=$(date "+%Y%m%d-%H%M%S")

cd $FileDir   #进入备份目录
FileNum=$(ls -l | grep '^d' | wc -l)   #当前有几个文件夹,即几个备份

while(( $FileNum > $ReservedNum))
do
    OldFile=$(ls -rt | head -1)         #获取最旧的那个备份文件夹
    echo  $date "Delete File:"$OldFile
    rm -rf $FileDir/$OldFile
    let "FileNum--"
done 

 

五、配置发送到远程tomcat目录
 
image.png

其中Source files要注意配置正确,否则发送不了war包,我的jenkins该项目的workspace如下:


 
image.png
六、发布
  • 回到项目主界面,点击Build with Parameters
 
 
  • 发布选择Deploy--->开始构建,即可开始发布。


     
    image.png
  • 回滚选择Rollback--->输入回滚版本---->开始构建,版本号从构建历史中选择一个输入


     



作者:linjiajiam
链接:https://www.jianshu.com/p/af5fecaa8357
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

posted @ 2019-11-11 15:25  dulingyulove  阅读(2175)  评论(0编辑  收藏  举报