Jenkins版本回滚

718 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

之前我们聊了Jenkins的构建和自动构建,钉钉机器人等,但是发布的时候难免会有重大BUG,需要紧急进行回滚,下面就简单使用一些参数和脚本进行版本回滚,版本回滚在之前的环境基础之上。

一、添加两个参数化构建:General——参数化构建过程——添加参数——选项参数(Choice Parameter )——字符参数(String Parameter )

1、参数化构建过程 2、添加两个参数:选项参数和字符参数 3、选项参数填写: 名称: Status 选项: Deploy Rollback 描述: Deploy:【发布】 Rollback:【回滚】

image.png

二、添加构建步骤:构建——增加构建步骤——执行shell(Execute shell)

image.png

三、添加执行脚本

image.png

case $Status  in
  Deploy)
  echo "Status:$Status"
  path="../需要备份的项目名称bak/${BUILD_NUMBER}"      #创建每次要备份的目录,可以自行更改,目录修改
  if [ -d $path ];
  then
     echo "The files is already  exists "
  else
     mkdir -p  $path
 fi
 \cp -r ${WORKSPACE}/* $path        #复制当前版本代码到历史文件夹
 #composer update
 echo "Completing!"
 ;;
 Rollback)
  echo "Status:$Status"
  echo "Version:$Version"
  rm -rf ${WORKSPACE}/*             #删除工作空间代码
  cd ../需要备份的项目名称bak/$Version            #进入备份目录,目录修改
  echo $Version                   #输出获取的版本号
  \cp -r ./* ${WORKSPACE}/       #拷贝历史版本至工作空间
  ;;
  *)
   exit
  ;;
 esac
四、测试版本回滚

image.png

在接下来使用过程中,会出现构建历史版本过多,再写个构建后保留8份历史版本就可以

image.png

cd  ../需要备份的项目名称bak/	&&	ls -t |awk 'NR>8'|xargs rm -rf 				
#进入备份的目录,先安装时间排序,然后保留前8个历史版本,用&&表示上个命令执行成功后执行下个命令,避免误删操作