一、创建项目

填写项目名,关系到项目路径对应请谨慎命名

二、项目配置

1.配置字符串参数和选项参数

2.代码仓库配置

3.构建环境

4.构筑脚本配置

5.点击左下方的保存或者应用

三、使用方法

1.发布回退流程

2.查看历史发布信息

四、基础脚本(会自动对应到所在项目或项目文件夹):

 1 TmpDir=${WORKSPACE}
2 Date=$(date "+%Y%m%d-%H%M%S")
3 LogFile=/var/log/deploy/"$Status"_$(date "+%Y%m%d").log
4
5 case $Status in
6 Deploy)
7 path="/bak$TmpDir/$Time" #创建每次要备份的目录
8 if [ -d $path ];
9 then
10 echo "The files is already exists " >> $LogFile
11 else
12 mkdir -p $path
13 chmod 777 $path
14 fi
15 \cp -rf $TmpDir/* $path #将打包好的文件备份到相应目录,覆盖已存在的目标
16 echo "$Date Completing! Project:${WORKSPACE} Status:$Status Version: $Time BuildNum:${BUILD_NUMBER}" >> $LogFile
17 ;;
18 Rollback)
19 cd /bak$TmpDir/$Time #进入备份目录
20 \cp -rf * $TmpDir/ #将备份拷贝到程序打包目录中,并覆盖之前的包
21 echo "$Date Completing! Project:${WORKSPACE} Status:$Status Version:$Time BuildNum:${BUILD_NUMBER}" >> $LogFile
22 ;;
23 *)
24 exit
25 ;;
26 esac
27
28 ReservedNum=30 #保留文件数
29 FileDir="/bak$TmpDir/"
30
31 cd $FileDir #进入备份目录
32 FileNum=$(ls -l | grep '^d' | wc -l) #当前有几个文件夹,即几个备份
33
34 while(( $FileNum > $ReservedNum))
35 do
36 OldFile=$(ls -rt | head -1) #获取最旧的那个备份文件夹
37 echo $date "$Date Delete File:"$OldFile >> $LogFile
38 rm -rf $FileDir/$OldFile
39 let "FileNum--"
40 done
41
42 # 下面放具体项目发布脚本指令(即由ci服务器分发到线上服务)
 

五、相关须知:

*ci 回退备份文件目录 /bak/var/lib/jenkins/workspace/xxx项目名/

需要时可手动查找相关版本项目文件,目前脚本内只保留单项目或目录30份备份文件,可根据需要更改脚本内参数30为既定量

*ci 发布回退日志文件目录 /var/log/deploy/ 会记录当天的发布和回退情况

示例:

20201012-165752 Completing! Project:/var/lib/jenkins/workspace/test-ci-backend Status:Deploy Version: 2020101224 BuildNum:84

20201012-164711 Completing! Project:/var/lib/jenkins/workspace/test-ci-backend Status:Rollback Version:2020101221 BuildNum:83

对应了秒级项目发布时间,项目所在位置即哪个项目,发布回退状态,发布和回退时填写时间版本号,发布的序号对应jenkins序号

CI/CD版本回滚Jenkins解决方案的更多相关文章

  1. 失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案

    微信页面input获取焦点,布局上移,失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案: setTimeout(function(){ let scrollHeight = docum ...

  2. svn 日志版本回滚

    [root@v01 online]# svn diff -r 9:8 Index: index.html =============================================== ...

  3. nginx之热部署,以及版本回滚

    热部署的概念:当从老版本替换为新版本的nginx的时候,如果不热部署的话,会需要取消nginx服务并重启服务才能替换成功,这样的话会使正在访问的用户在断开连接,所以为了不影响用户的体验,且需要版本升级 ...

  4. 用Helm部署Kubernetes应用,支持多环境部署与版本回滚

    1 前言 Helm是优秀的基于Kubernetes的包管理器.利用Helm,可以快速安装常用的Kubernetes应用,可以针对同一个应用快速部署多套环境,还可以实现运维人员与开发人员的职责分离.现在 ...

  5. Nginx 版本回滚

    目录 参考信息 源码安装 nginx-1.14.2 版本升级 nginx-1.16.1 版本回滚 ①.对于软件的版本升级.添加官方模块.添加第三方模块,都需要用源码安装包重新生成(configure) ...

  6. TortoiseSVN 版本回滚

    尝试用TortoiseSVN进行版本回滚,回滚到的版本和实际的内容有出入,可能是点了太多次给点乱了,囧~ 不过发现一个比较靠谱的方法,如下: 右键点击文件TortoiseSVN->showlog ...

  7. git---远程仓库版本回滚

    开发中,发现有错误版本提交带远程分支master,怎么处理? 1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回 ...

  8. SVN系列之—-SVN版本回滚的办法

    例:SVN版本为:TortoiseSVN 1.9.7 一.SVN简介 subversion(简称svn)是一种跨平台的集中式版本控制工具,支持linux和windows. 版本控制解决了:*代码管理混 ...

  9. SVN版本回滚实战

    天在使用SVN发布的时候不小心修改了一些不正确的东西,新增和编辑了一些错误的文件,由于文件数量比较多,并且目录复杂,不可能单个进行处理,所以想到了SVN版本回滚. 回滚本地工作目录: 1.右键工作目录 ...

随机推荐

  1. Kotlin & Android & Swift & Flutter & React Native

    Kotlin & Android https://www.runoob.com/kotlin/kotlin-tutorial.html Swift 5 & iOS 12 https:/ ...

  2. vue2.0用法以及环境配置

    一.配置环境搭建 1.安装node.js (可以去官网看) 2.安装git (推荐看廖雪峰文章,点击查看) 3.安装vue: cmd:npm install vue //最新稳定版本 npm inst ...

  3. 同样是NGK官方推出的代币,SPC与BGV有何异同?

    近日,币圈又火热了起来,而这次火热是由NGK搅动的.原来,NGK官方空投了200万枚SPC,用于奖励NGK算力持有者.当前,已经有一部分算力持有者获得了SPC奖励,有的算力持有者获得的SPC数量惊人, ...

  4. [转]Linux 线程实现机制分析 Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL

    转载地址:https://www.cnblogs.com/MYSQLZOUQI/p/4233630.html 自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题脱 ...

  5. Python_20行代码实现微信消息防撤回(简易版)

    学习了一下如何用python实现微信消息的防撤回, 主要思路就是: 时时监控微信,将对方发送的消息缓存下来 如果对方撤回了消息,就将该缓存信息发送给文件传输助手 但其实这功能,基本上毫无意义,看到别人 ...

  6. (十一) 数据库查询处理之连接(Join)

    (十一) 数据库查询处理之连接(Join) 1. 连接操作的一个例子 把外层关系和内层关系中满足一定关系的属性值拼接成一个新的元组 一种现在仍然十分有用的优化思路Late Materializatio ...

  7. plsql连接oracle出现问题总结

    https://blog.csdn.net/yali1990515/article/details/46874511

  8. 2021-2-27:Linux 下如何优化 Java MMAP 写入

    主要是调整 pdflush 相关参数. 在linux操作系统中,写操作是异步的,即写操作返回的时候数据并没有真正写到磁盘上,而是先写到了系统cache里,随后由pdflush内核线程将系统中的脏页写到 ...

  9. AOP +FreeSql 跨方法异步事务

    AOP +FreeSql 跨方法异步事务 Autofac.Extensions.DependencyInjection Autofac.Extras.DynamicProxy Castle.Core. ...

  10. Mac创建Root用户

    1.打开Mac终端管理工具 前往-实用工具-终端 2.用命令的形式创建账户 sudo passwd root 3.输入当前登录用户密码 4.输入root用户密码并验证