一、创建项目

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

二、项目配置

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. how to convert Map to Object in js

    how to convert Map to Object in js Map to Object just using the ES6 ways Object.fromEntries const lo ...

  2. how to stop MongoDB from the command line

    how to stop MongoDB from the command line stop mongod https://docs.mongodb.com/manual/tutorial/manag ...

  3. taro 三端开发

    taro 三端开发 wx 小程序, alipay 小程序,H5 https://taro-docs.jd.com/taro/docs/GETTING-STARTED.html#h5 https://t ...

  4. js destructuring assignment bug

    js destructuring assignment bug https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Op ...

  5. Dart 编写Api弃用警告

    例如body2在以后的版本将被bodyText1代替 @Deprecated( 'This is the term used in the 2014 version of material desig ...

  6. html转png

    /*海报弹窗2018-3-14*/.diglogimg{position: fixed;top:0;left:0;z-index: 99;width: 100%;height: 100%;backgr ...

  7. 死磕Spring之IoC篇 - 深入了解Spring IoC(面试题)

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  8. POJ1852-换向思考

    蚂蚁碰撞后反向与穿越的时间一样. 穷竭搜索---->想象力 #include<stdio.h> int main(void){ int n,len,ansNum,mintime,ma ...

  9. nginx+php-fpm docker镜像合二为一

    一.概述 在上一篇文章介绍了nginx+php-fpm,链接如下: https://www.cnblogs.com/xiao987334176/p/12918413.html nginx和php-fp ...

  10. Docker 搭建nexus私服

    一.概述 有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:Apache基金会的Archiva.JFrog的Artifactory和Sonatype的Nexus.而Nexus是当前最流行的M ...