jenkins部署springboot项目 带版本回滚

2021-04-19  本文已影响0人  子丿龙

jenkins先安装插件 Conditional BuildStep ,maven integration
默认基本配置你都装好了,那么进行下面操作

1. 新建自由风格工作流(不是maven风格)
2. 进入工作流,配置参数化构建过程,第一个,构建状态选择参数,是构建发布还是构建回滚,如下图:
image.png
3. 配置回滚操作时的Version版本参数,如下图:
image.png
4. 配置git地址,密码和秘钥自己选个配置,然后选好构建的分支
5. 选择增加构建步骤,选择Conditional step(single),这一步我们要进行shell条件判断是否要进行项目的build,如下图:
image.png image.png

条件判断的shell如下,返回0表示要build,非0表示不build。如果需要build,就执行maven命令,打包项目

#!/bin/bash
if [ $BUILD_TYPE == Deploy ];then 
  echo "Deploy,  build required" 
  exit 0
else
  echo "No Need to build"
  exit -1
fi
6. 继续增加第二个构建步骤,这次我们要对包进行备份,选择always即可,不需要像上一步增加判断。(如果熟悉流程后,可以灵活的把备份放到最后再增加一个构建步骤即可,这里只进行判断是否回滚,毕竟备份费时间)
image.png
case $BUILD_TYPE in
  Deploy)
    echo "BUILD_TYPE:$BUILD_TYPE"
    path="/root/kids-version-manager/bak/${BUILD_NUMBER}"
    if [ -d $path ];
    then
        echo "The files is aready exists "
    else
        mkdir -p $path
    fi
    cp -f ${WORKSPACE}/kids-world-api/target/*.jar $path
    echo "completing"
    ;;
  Rollback)
    echo "BUILD_TYPE:$BUILD_TYPE"
    echo "Version:$Version"
    cp -f /root/kids-version-manager/bak/$Version/*.jar  ${WORKSPACE}/kids-world-api/target
    ;;
  *)
  exit
      ;;
esac

7. 再增加一个构建步骤,这次像配置标准maven流程一样,配置一下项目的启动命令即可。参照 我的的文章https://www.jianshu.com/p/fd0b868e2780 的第4步即可。就是写个shell脚本启动一下项目

8. 如果闲的蛋蛋疼,可以再增加一个构建步骤,每次清理下备份,这里只保留了5个备份。

image.png
ReservedNum=5  #保留文件数
FileDir=/root/kids-version-manager/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 
上一篇下一篇

猜你喜欢

热点阅读