Jenkins回滚可以通过每次发布从主干打tag,然后发布的时候发tag,比如tag, v1, v2,v3 如果我发布了v3,想要回滚回v2,直接在Jenkins中选择v2的tag地址重新构建就可以回滚到v2发布时的代码构建。
 
但是如果发布时没有打tag的习惯或者觉得重构代码比较费时如何操作?
下面看下如何配置
 
参数化构建过程中添加,如图,按自己需要添加
接着是发布脚本
 
case $Status  in
  Deploy)
    echo "=========== Generate deploy parameters =============="
    path="${WORKSPACE}/bak/$BUILD_ID"
    if [ -d $path ];
    then
        echo "===== The backup directory already exists ======="
    else
        mkdir -p  $path
    fi
    
    #war包路径
    jar_file=$(find $WORKSPACE/$module/target -name *.war)
    #war包名称
    war_file_name=$( basename $jar_file)
    
    yes|cp -a $jar_file $WORKSPACE/bak/$BUILD_ID/
    ;;
  Rollback)
    echo "========== Generate Rollback parameters ============"
    echo "Rollback_tag:$Rollback_tag"
    
    #war包路径
    jar_file=$(find $WORKSPACE/bak/$Rollback_tag -name *.war)
    
    #war包名称
    war_file_name=$( basename $jar_file)
      ;;
  *)
  exit
      ;;
esac
 
#如果使用ansbile发布请开启下面的变量注入
#echo jar_file=$jar_file >>tmp.pro
#echo war_file_name=$war_file_name >>tmp.pro
 
echo "============ Start the deploy or rollback ============="
scp $jar_file root@172.10.10.17:/usr/local/newindex/
ssh root@172.10.10.17 /usr/local/newindex/deploy-new-index.sh
 
##############################################################
附上陈旧备份清理脚本
#/bin/bash
#饭票20190402
#用于判断Jenkins的备份目录,如果数量大于5就删除最久的一个备份目录
units=5
dir=`ls /jenkins/workspace/ | grep -v "package-lock.json"|grep -v "node_modules"`
 
for i in $dir
do
  if [ -d /jenkins/workspace/$i/bak ];
  then
     for x in 1 2 3
     do
      dir_units=`ls /jenkins/workspace/$i/bak | wc -l`
      if [ $dir_units -gt $units ];
      then
         a=`ls -tr /jenkins/workspace/$i/bak/ | head -1`
         echo "$i 目录下有需要清理的陈旧备份,第 $x 次清理 $a 备份目录" `date`
         #find /jenkins/workspace/$i/bak -name $a  -exec rm -rf {} \;
         find /jenkins/workspace/$i/bak -name $a | xargs rm -rf;
     fi
     done
fi
 
done

Jenkins发布回滚方案的更多相关文章

  1. Jenkins+Ansible+Gitlab自动发布/回滚Spring项目

    一.实现方法流程图 流程图如下:代码托管在本地GitLab上(为了复现整套流水线,我直接使用了GitHub,懒得再搭建GitLab),开发完成后提交代码到代码仓库,[自动]触发Jenkins进行持续集 ...

  2. 在Azure DevOps Server(TFS系统)中部署回退/回滚方案(Rollback)

    概述 Azure DevOps Server(之前名TFS)是微软公司实现软件研发.测试和部署一体化的全流程解决方案.在近几年的研发过程中,Azure DevOps Server 大幅增强了软件部署过 ...

  3. 自动化部署-Jenkins备份回滚

    1.备份 备份可以使用批处理命令解决,实际就是复制当前发布文件 ::备份文件夹名,使用当前时间 set foldername=%date:~0,4%%date:~5,2%%date:~8,2%%tim ...

  4. jenkins自动化回滚阿里云k8s应用版本

    jenkins 服务器需先保留着原先构建的不同版本的应用镜像 [root@jenkins sh]# docker images|grep "maintain" registry-v ...

  5. jenkinsfile or pipline 实现微服务自动发布回滚流程

    1 #!/usr/bin/env groovy Jenkinsfile node { //服务名称 def service_name = "**" //包名 def service ...

  6. Jenkins 搭建企业实战案例 (发布与回滚)

    让我们的代码部署变得easy,不再难,Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins非常易于安装和配置,简单易用 ...

  7. 2、jenkins+svn自动发布和回滚

    Jenkins配置回滚思路: 目前只能实现使用salt来管控配置文件的管控,配置文件的版本回滚需要后续定制化开发,或者进行格外其他的管理操作.后续实现 以下配置可以为每个项目备份构建文件到本地指定路径 ...

  8. jenkins:一键回滚站点集群

    最近在学习jenkins过程中整理了大量资料,都收录在<jenkins自动化工具使用教程>,但依然缺少一些具体实现细节. 这篇文章,介绍jenkins做集群回滚时的两个设计方案,让一键回滚 ...

  9. Git reset head revert 回滚

    Overview 涉及Git一些日常操作 :) 基础知识 <Pro Git>至少了解branch,commit的概念,及基本的原理 Git常用魔法 存档:master代码回滚方法 我是QA ...

随机推荐

  1. Storm项目开发纪要

    1.POM引用storm-core和javax.servlet-api这两个组件,如果本地模式跑拓扑,要把<scope>provided</scope>去掉:如果远程发布运行, ...

  2. MySQL 中 EXISTS 的用法

    在MySQL中 EXISTS 和 IN 的用法有什么关系和区别呢? 假定数据库中有两个表 分别为 表 a 和表 b create table a ( a_id int, a_name varchar( ...

  3. zookeeper+activemq高可用集群搭建

    一.准备工作: 准备三台机器:192.168.35.111192.168.35.112192.168.35.113 二.搭建zookeeper 三台机器上均要搭建zookeeper服务// 下载zoo ...

  4. 黑客正在使用美国NSA泄露的工具进行挖矿

    早些年我们知道美国国家安全局囤积不少漏洞准备自己使用,结果这些漏洞以及利用工具被方程式组织获得. 随后名为影子经纪人的黑客组织获得这些漏洞和工具后又再次出售,当初的永恒之蓝漏洞就是从这里泄露的. 永恒 ...

  5. Codeforces 708D 上下界费用流

    给你一个网络流的图 图中可能会有流量不平衡和流量>容量的情况存在 每调整一单位的流量/容量 需要一个单位的花费 问最少需要多少花费使得原图调整为正确(可行)的网络流 设当前边信息为(u,v,f, ...

  6. PHP的函数获取图片的宽高等信息

    PHP的函数getimagesize可以得到图片的宽高等信息 array getimagesize ( string $filename [, array &$imageinfo ] )   ...

  7. 【51nod1672】区间交

    题目大意:给定一个长度为 N 的序列,以及 M 个区间,现从中选出 K 个区间,使得这些区间的交集区间的点权和最大,求最大值是多少. 题解: 发现直接选 K 个区间不可做,考虑从答案入手.设答案区间为 ...

  8. 开发一个简单 ef+dapper 数据操作

    新建一个net core 2项目

  9. k8s测试容器test-for-k8s.yml

    生成容器 vim test-for-k8s.yml apiVersion: v1 kind: Pod metadata: name: busybox-curl labels: ccb: busybox ...

  10. [LibreOJ 3119]【CTS2019】随机立方体【计数】【容斥】

    Description Solution 记\(N=min(n,m,l)\) 首先考虑容斥,记\(f(i)\)为至少有i个位置是极大的,显然极大的位置数上界是N. 那么显然\(Ans=\sum\lim ...