1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

jenkins版本控制及回滚配置

1987web2023-10-06WEB开发95

点击上方蓝字关注我们

资源放送

Linux精品实战课程讲解

↓ 扫一扫 视频在线观看↓

jenkins部署过程中,构建后启动失败的时候,我们能够快速回滚到上一版本,保持程序的稳定性。

步骤

1、选择构建保留版本

1)保留5个构建版本:

2)参数化构建:

2、调整有不一致配置的地方

其他的和之前配置一样,接下来看点不一样的。

3、配置可执行shell 脚本:

case$deploy_environmentindeploy)echo"deploy$deploy_environment"mvn install -Dmaven.test.skip=true-e    path="${WORKSPACE}/bak/${BUILD_NUMBER}"创建每次要备份的目录echo "$path"echo "-d $path"if [ -d $path ];thenecho "The files is already  exists "else        mkdir -p  $pathfi    \cp -f $WORKSPACE/yuxuntoo-member/target/*.jar $path        将打包好的jar包备份到相应目录,覆盖已存在的目标echo "Completing!"    ;;  rollback)echo "rollback $deploy_env  version=$version"cd ${WORKSPACE}/bak/$version            进入备份目录if [ -d ${WORKSPACE}/yuxuntoo-member/target/ ];        这里yuxuntoo-member是你打包的单模块的名字thenecho "The files is already  exists "else       mkdir -p  ${WORKSPACE}/yuxuntoo-member/target/fi    \cp -f *.jar ${WORKSPACE}/yuxuntoo-member/target/       将备份拷贝到程序打包目录中,并覆盖之前的jar包

完整SHELL 脚本:

case $deploy_environment indeploy)echo "deploy $deploy_environment"mvn install -Dmaven.test.skip=true -epath="${WORKSPACE}/bak/${BUILD_NUMBER}" 创建每次要备份的目录echo "$path"echo "-d $path"if [ -d $path ];thenecho "The files is already exists "elsemkdir -p $pathfi\cp -f $WORKSPACE/yuxuntoo-member/target/*.jar $path 将打包好的jar包备份到相应目录,覆盖已存在的目标echo "Completing!";;rollback)echo "rollback $deploy_env version=$version"cd ${WORKSPACE}/bak/$version 进入备份目录if [ -d ${WORKSPACE}/yuxuntoo-member/target/ ]; 这里yuxuntoo-member是你打包的单模块的名字thenecho "The files is already exists "elsemkdir -p ${WORKSPACE}/yuxuntoo-member/target/fi\cp -f *.jar ${WORKSPACE}/yuxuntoo-member/target/ 将备份拷贝到程序打包目录中,并覆盖之前的jar包;;*)exit;;esac

另一个shell脚本,保留最新的5个备份,为磁盘节省空间。

ReservedNum=5 保留文件数FileDir=${WORKSPACE}/bak/date=$(date "+%Y%m%d-%H%M%S")cd $FileDir 进入备份目录FileNum=$(ls -l | grep ^d | wc -l) 当前有几个文件夹,即几个备份

完整脚本如下:

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

这里便完成了回滚的主要配置配置,其他的配置和上篇文章中的内容一样了。

4、执行脚本的配置:

PID=`lsof -i:18081| grep LISTEN |awk {print $2}`echo ${PID}if [[ $PID -ge 0 ]];thenkill -9 $PIDfiBUILD_ID=dontKillMenohup java -jar -Dspring.profiles.active=dev yuxuntoo-member-0.0.1-SNAPSHOT.jar > /tools/yuxuntoo/log/member.log 2>&1 &

完整Exec command 脚本如下:

!/bin/bashsource /etc/profilecd /tools/yuxuntoo/member jar包存放目录PID=`lsof -i:18081| grep LISTEN |awk {print $2}`echo ${PID}if [[ $PID -ge 0 ]];thenkill -9 $PIDfiBUILD_ID=dontKillMenohup java -jar -Dspring.profiles.active=dev yuxuntoo-member-0.0.1-SNAPSHOT.jar > /tools/yuxuntoo/log/member.log 2>&1 &

解决这个bug到这就完成了。

课程咨询添加:HCIE666CCIE

↑或者扫描上方二维码↑

你有什么想看的技术点和内容

可以在下方留言告诉小盟哦!