首先需要安装插件:conditional-buildstep

A buildstep wrapping any number of other buildsteps, controlling their execution based on a defined condition (e.g. BuildParameter).
 
 
1、构建代码时,需要记录每次构建的GIT_COMMIT,保存到一个文本中,以构建编号进行命名:

#!/bin/sh

#$:send branch
#$:jenkins build id
#$:git commit

branch=$
version=$
commit=$

case $branch in
    Pre)
        echo "branch: ${branch}"
        echo "version: ${version}"
        echo "commit: ${commit}"
        #同步代码到发布目录
        #to do

        #备份版本git commit
        echo ${commit}>/home/wos/test2/${version}.txt

        ;;
    Real)
        echo "branch: ${branch}"
        echo "version: ${version}"
        echo "commit: ${commit}"
        #同步代码到发布目录
        #to do

        #备份版本git commit
        echo ${commit}>/home/wos/test2/${version}.txt

        ;;
    Rollback_Pre)
        echo "branch: ${branch}"
        echo "version: ${version}"
        echo "commit: ${commit}"
        #同步代码到发布目录
        #to do
        ;;
    Rollback_Real)
        echo "branch: ${branch}"
        echo "version: ${version}"
        echo "commit: ${commit}"
        #同步代码到发布目录
        #to do
        ;;
    *)
        exit
        ;;
esac

2、进行回滚

case $deploy_evn in
    Rollback_Pre)
        url="$pre_version"
        ;;
    Rollback_Real)
        url="$real_version"
        ;;
    *)
        exit
        ;;
esac

model="$deploy_evn"
projectName=`echo "$url"|awk -F '/' '{print $6}'`
rollbackID=`echo "$url"|awk -F '/' '{print $7}'`

#获取回滚GIT_COMMIT
commit=$(cat /home/wos/test2/${rollbackID}.txt)
#进入备份目录
cd /home/wos/test3/WOS_Portal/
#下载最新代码
git clone http://username:password@git.wondershare.cn/CPStudio/WOS_Portal.git
#本地回滚代码
git reset --hard ${commit}
#回滚代码到WEB服务器
/bin/sh /usr/local/rsync/portal/portal.sh $model $rollbackID
 

通过GIT_COMMIT进行代码回滚的更多相关文章

  1. git代码回滚:Reset、Checkout、Revert的选择

    代码回滚:Reset.Checkout.Revert的选择 Zhongyi Tong edited this page on Dec 8, 2015 · 5 revisions Pages 19 Ho ...

  2. svn代码回滚命令

    代码回滚提交: 比如要把73回滚到68 svn merge -r 73:68 http://my.repository.com/my/project/trunk 然后commit就行了 svn com ...

  3. 代码回滚:Reset、Checkout、Revert的选择

    代码回滚:Reset.Checkout.Revert的选择 Git仓库有三个主要组成——工作目录,缓存区和提交历史. 从图中我们可以看出,缓存区或者叫索引,其实是指一整套即将被下一个提交的文件集合.也 ...

  4. gitlab一次代码回滚引起的bug...

    问题描述:线上问题有一个bug,挺严重的.在线下排查后发现是一个之前的同事添加的代码影响的,为了不影响之前的业务,代码回滚了. 但是 过了几天,测人人员测试之后说这个问题又复现了,然后再次看,发现还是 ...

  5. 6.Git代码回滚

    1.代码修改并提交 我们已经成功地添加并提交了一个helloWorld.txt文件,现在,是时候继续工作了. 于是,我们继续修改helloWorld.txt文件,改成如下内容: $ vi helloW ...

  6. 利用PyCharm操作Github:仓库新建、更新,代码回滚

      Github是目前世界上最流行的代码存储和分享平台,而PyCharm是Python圈中最流行的IDE,它很好地支持了Git操作.本文将会介绍如何利用PyCharm来连接Github,同时演示Git ...

  7. gitlab基础命令之代码回滚

    #:gitlab状态 root@ubuntu:~# gitlab-ctl status run: alertmanager: (pid 13305) 215965s; run: log: (pid 1 ...

  8. SVN代码回滚

    取消对代码的修改分为两种情况:   第一种情况:改动没有被提交(commit). 这种情况下,使用svn revert就能取消之前的修改. svn revert用法如下: # svn revert [ ...

  9. SVN代码回滚命令之---merge的使用

    一.改动还没被提交的情况(未commit) 这种情况下,见有的人的做法是删除work copy中文件,然后重新update,恩,这种做法达到了目的,但不优雅,因为这种事没必要麻烦服务端. 其实一个命令 ...

随机推荐

  1. Oracle字符串行拆分成列的三种方式

    Oracle字符串行拆分成列的三种方式 --muphy 开发过程中经常会遇到将前台多个值用逗号连接一同传递到后台查询,这个用逗号连接的字符串分隔的每个字符串分别对应Oracle数据库表的不同行. 如下 ...

  2. 微信小程序之初探(常见语法 VS vue)常见问题(点击不生效,数据绑定)

    最近在调研微信小程序开发,对于一个前端小白来说,在各种框架都还用不熟的情况下,再来开发小程序确实还是不容易. 小程序出来之初,听过演讲,看过一点点儿视频,感觉和angular语法有点相似(PS:那是也 ...

  3. 如何将知网下载的caj文件转换为pdf文件

    一.问题描述: 最近在知网搜索论文的时候,经常遇到有的论文没有pdf文件的情况,但不得不吐槽我觉得知网做的阅读器确实是有点烂.所以想将caj文件转化为pdf文件,找到了一个比较好的方法,所以希望记录一 ...

  4. Scrum【转】

    转载自:https://www.cnblogs.com/l2rf/p/5783726.html 灵感来自于一段冷笑话: 一天,一头猪和一只鸡在路上散步,鸡看了一下猪说,“嗨,我们合伙开一家餐馆怎么样? ...

  5. 使用Zabbix监控mysql的主从同步

    Zabbix 监控触发器设置 简述 在生产环境中,有一台mysql的备份服务器,上面运行着三个数据库实例的从库,也在做日志的同步工作,为了实现对该备份服务器的监控,当出现从库实例不为3或者日志同步进程 ...

  6. linux系统中日常运维常用命令汇总一

    一.查看日志和机器相关信息常用命令 1.cat cat 命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往 ...

  7. IDEA+Maven+Spring MVC HelloWorld示例

    用Maven创建Web项目 选择webapp模板 创建成功后点Enable Auto-Import idea给我们创建出来的结构是这样的,这还不标准,需要自己修改. 在main文件夹下创建java文件 ...

  8. LNMP组合环境

    Mysql----二进制安装: 下载rpm包 创建MySQL用户: useradd -s /sbin/nologin mysql -M 这里遇到无法创建用户,提示:useradd: group mys ...

  9. P5283 [十二省联考2019]异或粽子

    考场上想到了没打完,细节思路还是不是很优,我原先的想法是每一次找完后标记那个点,下次再继续找(并不是这个意思,说不清楚)但实际上和平衡树一样加个大小就很好写了 #include<bits/std ...

  10. mysql远程连接很慢问题解决

    mysql开启远程访问发现从远程连接每次都在5秒以上,从本机连接很快. 解决方案: [mysqld] 标签下添加一行配置 skip-name-resolve 重启mysqld服务, 问题解决!