首先需要安装插件: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. BZOJ 1855 股票交易 (算竞进阶习题)

    单调队列优化dp dp真的是难..不看题解完全不知道状态转移方程QAQ 推出方程后发现是关于j,k独立的多项式,所以可以单调队列优化.. #include <bits/stdc++.h> ...

  2. 「FHQ Treap」学习笔记

    话说天下大事,就像fhq treap —— 分久必合,合久必分 简单讲一讲.非旋treap主要依靠分裂和合并来实现操作.(递归,不维护fa不维护cnt) 合并的前提是两棵树的权值满足一边的最大的比另一 ...

  3. P2522 [HAOI2011]Problem b (莫比乌斯反演)

    题目 P2522 [HAOI2011]Problem b 解析: 具体推导过程同P3455 [POI2007]ZAP-Queries 不同的是,这个题求的是\(\sum_{i=a}^b\sum_{j= ...

  4. 运行adb命令报错adb server version (31) doesn't match this client (39); killing...

    执行adb devices 报错 原因分析: 这个是socket 的端口被占用了,我这里是因为360手机助手占用了这个端口,所以其他的就不能够用了. 解决办法: 卸载了360的手机助手就可以了 首先 ...

  5. 虚拟机 模拟centos 7 系统安装

    Cnetos 服务器安装过程  1.制作U盘启动器 网上有很多制作U盘启动的教程,这里就不详细说了 2.用U盘启动电脑进入安装界面 3.开始安装 等待片刻后,正常的应该会进入语言选择界面了. 选择中文 ...

  6. 企业级playbook的使用

    一.roles文件存放位置 可以在ansible.cfg配置文件中找到,默认路径如下: 也可以在ansible.cfg文件中自定义修改 二.下面以/usr/share/ansible目录来讲解 ans ...

  7. Kubernetes之canal的网络策略(NetworkPolicy)

    安装要求: 1.我们这里安装的是3.3的版本.kubernetes的要求: 支持的版本 1.10 1.11 1.12 2.CNI插件需要启用,Calico安装为CNI插件.必须通过传递--networ ...

  8. 关于js dtGrid报错长度的问题

    错误js截图 Uncaught TypeError: Cannot read property 'length' of undefined 翻译:Uncaught TypeError:无法读取未定义的 ...

  9. 浏览器将URL变成一个屏幕上显示的网页的过程?

    前言 一个浏览器是怎么工作的? 正文 URL变网页过程: 1.浏览器通过http或https协议,向服务端请求页面 2.将请求过来的HEML代码通过解析,构建DOM树 3.计算DOM树上的CSS属性 ...

  10. 虚拟机有QQ消息时宿主机自动弹窗提示

    因为是检测窗口实现的,所以要求设置会话窗口自动弹出,而且看完消息就把QQ消息窗口关掉... 虚拟机端 #! /usr/bin/env python # -*- coding: utf-8 -*- fr ...