美文网首页
jenkins脚本回滚

jenkins脚本回滚

作者: 毛豆豆豆豆子 | 来源:发表于2019-07-06 20:40 被阅读0次
网上看了挺多的回滚博文,对于没有做过回滚的毛豆总感觉萌萌的。所以毛豆决定将自己配的回滚写下来做个记录

添加参数化构建过程

image.png

这张图中的变量有: 选项参数名称, 字符参数名称,也就是说在shell脚本中能用Status和Version变量

接下来就是编写构建脚本

在构建中 增加构建步骤-->执行shell
我们首先测试下上面所说的变量如何获取

image.png
echo "获取选择的变量Status:$Status"
echo "获取输入的版本变量Version:$Version"
echo "获取工作空间位置WORKSPACE:${WORKSPACE}"
echo "获取任务名称JOB_NAME:${JOB_NAME}"
echo "获取构建号:${BUILD_NUMBER}"

保存之后进行构建测试


image.png

如上图,点击Build with Parameters 出现我们定义的Status,这里选择了Deploy参数
Vserion没写参数,点击开始构建查看结果

点击控制台输出查看执行过程


image.png

执行过程


image.png
如上图,控制台会输出执行的语句,也会输出执行语句的结果
正如注释所说我们可以获取到自己传入的参数,$Status输出的是我们所选的Deploy,也可以用内置的参数比如${BUILD_NUMBER}获取构建号

写回滚脚本

既然我们能获取到构建的时候的参数,我们就可以用shell写个备份回滚的脚本


image.png
case $Status  in
  Deploy)                  //如果Status选的是Deploy
    echo "Status:$Status"                                          // 输出变量
    echo "WORKSPACE:${WORKSPACE}"             // 输出变量
    echo "JOB_NAME:${JOB_NAME}"                    // 输出变量
    echo "JOB_NAME:${BUILD_NUMBER}"           // 输出变量
    path="${WORKSPACE}/bak"                             // 备份路径
    if [ -d $path ];                                                      //备份路径是否存在
    then
        echo "The files is already  exists "                 // 如果存在提示已存在
    else
        mkdir -p  $path                                              // 不存在则创建
    fi
    ./download.sh                                                   // 调用下载脚本
    cp ${WORKSPACE}/target/dependency/ssm-1.0.0-SNAPSHOT.war ${WORKSPACE}/bak/ssm${BUILD_NUMBER}.war  // 将下载的war拷贝到备份文件夹
    ;;
  Rollback)  // 如果是回滚
      echo "Status:$Status"    // 输出变量
      echo "Version:$Version"  // 输出变量
      // 将对应版本号的war考到源目录
      cp -rf ${WORKSPACE}/bak/ssm$Version.war ${WORKSPACE}/target/dependency/ssm-1.0.0-SNAPSHOT.war
      // 备份war
      cp ${WORKSPACE}/target/dependency/ssm-1.0.0-SNAPSHOT.war ${WORKSPACE}/bak/ssm${BUILD_NUMBER}.war
      ;;
  *)
  exit
      ;;
esac

tips:既然我们能拿到相应的参数,我们就可以根据自己的需求编写构建的逻辑,如上Deploy的时候执行什么逻辑,Rollback的时候执行什么逻辑,或者还有个Init等等等。。。自己进行编写

测试回滚

先正常部署


image.png

查看部署效果


image.png

修改了代码再次部署

image.png

退回上一版本

填写要退回的构建号


image.png

成功回滚到指定的构建

image.png

参考链接:https://www.jianshu.com/p/00bdc87cd3ee

关于自动发布请参考,docker+jenkins+SVN自动构建部署Maven项目其中的部分内容, 喜欢的请点赞支持下Thanks♪(・ω・)ノ

相关文章

  • jenkins脚本回滚

    网上看了挺多的回滚博文,对于没有做过回滚的毛豆总感觉萌萌的。所以毛豆决定将自己配的回滚写下来做个记录 添加参数化构...

  • Jenkins版本回滚

    一、新建一个自由风格项目 二、配置参数化构建过程 添加选项参数image.png填入以下内容image.png2....

  • jenkins部署springboot项目 带版本回滚

    jenkins先安装插件 Conditional BuildStep ,maven integration默认基本...

  • git 本地代码回滚&&强制更新远端代码 / 本地不想回滚&

    文章参考 git本地版本回退与远端版本回退(回滚) 本地代码回滚&&强制更新远端代码 如果已经提交代码到maste...

  • 提交版本回滚

    将本地master定位到要回滚的版本 注意在回滚前记得先备份一下回滚前的分支备份回滚前的分支,可以说是本地和远程同...

  • Git 版本回滚

    目前团队中用的是git作为版本管理,dev分支为常规开发分支,master为上线分支,常规上线后,不可避免的有bu...

  • cornerStone版本回滚

    之前在和代码的时候,因为代码重构,svn代码库没有新建,在原来的基础上填写的,但是一直没有提交代码,到最后提交代码...

  • git版本回滚

  • git版本回滚

    回滚版本 方法一 reset适用于普通分支,且当前分支未被他人覆盖提交(加入master是保护分支,无法-f提交)...

  • git常用命令

    1、查看分之基于那个分之创建 2、版本回滚

网友评论

      本文标题:jenkins脚本回滚

      本文链接:https://www.haomeiwen.com/subject/gyxmhctx.html