自由风格项目
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
构建页面