Jenkins版本回滚
一、新建一个自由风格项目
二、配置参数化构建过程
-
添加选项参数
填入以下内容
2.添加字符参数
三、配置SVN
四、配置构建步骤
1. maven打包配置
-
选择调用顶层Maven目标,Maven版本之前已经在全局工具配置中设置过,目标中填入打包命令
2. 执行shell配置
-
此脚本为打包备份,回滚脚本
填入以下脚本
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
-
这样发布后以后,就会备份如下
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目录
其中Source files要注意配置正确,否则发送不了war包,我的jenkins该项目的workspace如下:
六、发布
- 回到项目主界面,点击Build with Parameters
-
发布选择Deploy--->开始构建,即可开始发布。
-
回滚选择Rollback--->输入回滚版本---->开始构建,版本号从构建历史中选择一个输入