本文已参与「新人创作礼」活动,一起开启掘金创作之路。
之前我们聊了Jenkins的构建和自动构建,钉钉机器人等,但是发布的时候难免会有重大BUG,需要紧急进行回滚,下面就简单使用一些参数和脚本进行版本回滚,版本回滚在之前的环境基础之上。
一、添加两个参数化构建:General——参数化构建过程——添加参数——选项参数(Choice Parameter )——字符参数(String Parameter )
1、参数化构建过程 2、添加两个参数:选项参数和字符参数 3、选项参数填写: 名称: Status 选项: Deploy Rollback 描述: Deploy:【发布】 Rollback:【回滚】
二、添加构建步骤:构建——增加构建步骤——执行shell(Execute shell)
三、添加执行脚本
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
四、测试版本回滚
在接下来使用过程中,会出现构建历史版本过多,再写个构建后保留8份历史版本就可以
cd ../需要备份的项目名称bak/ && ls -t |awk 'NR>8'|xargs rm -rf
#进入备份的目录,先安装时间排序,然后保留前8个历史版本,用&&表示上个命令执行成功后执行下个命令,避免误删操作