Jenkins版本回滚

Jenkins版本回滚

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


     
    image.png

    填入以下内容


     
    image.png

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


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


     
    image.png

    填入以下脚本


     
    备份回滚脚本
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--->输入回滚版本---->开始构建,版本号从构建历史中选择一个输入


       
posted @ 2020-10-19 21:08  30岁再次出发  阅读(501)  评论(0编辑  收藏  举报