Jenkins版本回滚
一、新建一个自由风格项目
![](http://upload-images.jianshu.io/upload_images/7802645-a108ab1f36ecd0f5.png?imageMogr2/auto-orient/strip|imageView2/2/w/961/format/webp)
二、配置参数化构建过程
-
添加选项参数
image.png
填入以下内容
image.png
2.添加字符参数
image.png
三、配置SVN
![](http://upload-images.jianshu.io/upload_images/7802645-5f07deb042e0775b.png?imageMogr2/auto-orient/strip|imageView2/2/w/1116/format/webp)
四、配置构建步骤
1. maven打包配置
-
选择调用顶层Maven目标,Maven版本之前已经在全局工具配置中设置过,目标中填入打包命令
image.png
2. 执行shell配置
-
此脚本为打包备份,回滚脚本
image.png
填入以下脚本
这里 ${WORKSPACE}、${JOB_NAME}、${BUILD_NUMBER}都是jenkins内置变量,这里我把官网的翻译贴出来:
BUILD_NUMBER
当前版本号,例如:153
JOB_NAME
此版本的项目名称
WORKSPACE
作为工作空间分配给构建目录的绝对路径。脚本具体内容不难,就是如果选择“Deploy”就执行创建文件夹(用于保存压缩后的文件),然后执行压缩文件,后面我加了一个超过设定时间,就删除文件的句子。因为怕文件太多,占用空间。
如果选择”RollBACK”,获取到要回滚的BUILD_NUMBER,查找到文件内容包含 BUILD_NUMBER的压缩文件,我就把这个文件复制成为最新的构建文件。
————————————————
版权声明:本文为CSDN博主「aaron是我啊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/leo15561050003/article/details/79818176备份回滚脚本
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
-
这样发布后以后,就会备份如下
image.png
image.png
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目录
![](http://upload-images.jianshu.io/upload_images/7802645-c7beb037bddad4f7.png?imageMogr2/auto-orient/strip|imageView2/2/w/1055/format/webp)
其中Source files要注意配置正确,否则发送不了war包,我的jenkins该项目的workspace如下:
![](http://upload-images.jianshu.io/upload_images/7802645-819b6ed8eb89107e.png?imageMogr2/auto-orient/strip|imageView2/2/w/810/format/webp)
六、发布
- 回到项目主界面,点击Build with Parameters
![](http://upload-images.jianshu.io/upload_images/7802645-4fef7f366d2c4582.png?imageMogr2/auto-orient/strip|imageView2/2/w/1083/format/webp)
-
发布选择Deploy--->开始构建,即可开始发布。
image.png -
回滚选择Rollback--->输入回滚版本---->开始构建,版本号从构建历史中选择一个输入
作者:linjiajiam
链接:https://www.jianshu.com/p/af5fecaa8357
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。