jenkins版本回滚

自由风格项目

 shell内容

case $Status  in
  	Deploy)
    echo "####本次操作为版本发布,版本号为$BUILD_NUMBER####"
	/bin/bash /data/sh/jiner-vue-admin/Deploy.sh
    ;;
    Rollback)
    echo "####本次操作为版本回滚,回滚到上一发布版本####"
	/bin/bash /data/sh/jiner-vue-admin/Rollback.sh
    ;;
  *)
  exit
    ;;
esac

Deploy.sh

#!/bin/bash
## 保留备份个数
BUILD_SAVE=5
BACKDIR=${JENKINS_HOME}/backdir/${JOB_NAME}
WEB_SERVER=""
WORK_DIR=/data/htdocs/jiner-vue-admin
mkdir -p $BACKDIR
if [ ! -d  ${WORK_DIR} ];then
        mkdir -p ${WORK_DIR}
fi
cd $BACKDIR
rsync -av ${WORK_DIR}/* Onlinebak_$(date +%Y%m%d%H%M)
cd $WORKSPACE
rsync -av * --exclude='.svn/' --delete ${WORK_DIR}
while true;
do
cd $BACKDIR
BAKFILES=$(ls -1tr|wc -l)
if [ $BAKFILES -gt "${BUILD_SAVE}" ];then
       ls -1tr |head -1|xargs rm -rf
else
        break;
fi
done

Rollback.sh

#!/bin/bash
BACKDIR=${JENKINS_HOME}/backdir/${JOB_NAME}
BACKFILE=$BACKDIR/$(ls -1t $BACKDIR|head -1)
WEB_SERVER=
WORK_DIR=/data/htdocs/jiner-vue-admin
if [ -d $BACKFILE ];then
        cd $WORKSPACE
        rm -f ${WORKSPACE}/*
        rsync -av ${BACKFILE}/* ${WORKSPACE}/
        rsync -av * ${WORK_DIR}
else
        echo "backdir not find"
        exit 1;
fi

构建页面

 

MAVEN项目

shell内容

case $Status  in
  	Deploy)
    echo "执行备份,备份版本号为${BUILD_NUMBER}"
    /bin/bash /data/sh/jiner-abas/Backup.sh
    ;;
    Rollback)
    echo "####本次操作为版本回滚,回滚版本号为$Version####"
	/bin/bash /data/sh/jiner-abas/Rollback.sh
    ;;
  *)
  exit
    ;;
esac

Backup.sh

#!/bin/bash
## 备份构建文件个数,等于jenkins丢弃废弃的构建->保留最大个数
BUILD_SAVE=5
BACKDIR=${JENKINS_HOME}/backdir/${JOB_NAME}

if [ ! -d  ${BACKDIR} ];then
        mkdir -p ${BACKDIR}
fi
## 备份当前发布版本代码,加入版本号,供回滚使用
cd $WORKSPACE
tar -zcf  $BACKDIR/${JOB_NAME}.VER${BUILD_NUMBER}.tar.gz *
if [ $? -eq 0 ];then
        echo "备份完成"
fi
while true;
do
cd $BACKDIR
BAKFILES=$(ls -1tr *.tar.gz|wc -l)
if [ $BAKFILES -gt "$BUILD_SAVE" ];then
       ls -1tr *.tar.gz|head -1|xargs rm -f
else
        break;
fi
done

 Rollback.sh

#!/bin/bash
BACKDIR=${JENKINS_HOME}/backdir/${JOB_NAME}
## 根据jenkins版本号选择锁定回滚文件
BACKFILE=${BACKDIR}/${JOB_NAME}.VER${Version}.tar.gz

if [ -f $BACKFILE ];then
        cd $WORKSPACE
        rm -rf ${WORKSPACE}/*
        rsync -av $BACKFILE $WORKSPACE/
        if [ $? -eq 0 ];then
                echo "回滚文件拷贝完成"
        else
                echo "回滚文件拷贝失败"
        fi
        tar -zxf ${JOB_NAME}.VER${Version}.tar.gz
        if [ $? -eq 0 ];then
                echo "回滚文件解压完成"
        else
                echo "回滚文件解压失败"
        fi
        rm -f ${JOB_NAME}.VER${Version}.tar.gz
else
        echo "backfile not find"
        exit 1;
fi

构建页面 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值