#!/bin/sh

#代码分支
branch_c=$
branch_p=$
#服务器
server=$
#构建版本
version=$

case $server in
    test1)
        echo "代码分支: ${branch}"
        echo "服务器: ${server}"

        #定义代码存放目录
        folder="/data/gopro/WOS_CORE/"   

        ##判断WOS_CORE目录是否存在,不存在则第一次拉取
        if [ ! -x "$folder" ]; then
            #echo "目录不经存在,第一次拉代码"            #拉取主模块代码
            cd /data/gopro/
            git clone -b $branch_c http://username:passwd@git.wondershare.cn/XXX.git         #拉取子模块代码
            cd /data/test/WOS_CORE
            rm -rf .git/index src/proto/
            git submodule -b $branch_p add http://username:passwd@git.wondershare.cn/XXX.git proto
        else
            #echo "目录已存在,非第一次拉代码"            #拉取主模块代码
            cd /data/gopro/WOS_CORE
            git commit -m 'test' .
            git pull
            git checkout $branch_c
                     #拉取子模块代码
            cd /data/gopro/WOS_CORE/src/proto
            git commit -m 'test'
            git pull
            git checkout $branch_p
        fi        

        #编译代码
        /bin/sh gen_proto.sh
        cd /data/gopro/WOS_CORE/src
        go build
        go install

        #同步代码
        sudo rsync -avP --password-file=/usr/local/rsync/rsync.scrt /data/gopath/bin/rest apache@X.X.X.X::apache/data/www/vhosts/go

        #创建备份目录
        echo $version
        mkdir -p /data/go_backup/${version}
        #把代码复制到备份目录
        cp /data/gopath/bin/rest /data/go_backup/${version}
        ;;
    *)
exit
;;
esac

golang自动构建脚本的更多相关文章

  1. 基于GitLab CI搭建Golang自动构建环境

    基于GitLab CI搭建Golang自动构建环境 Golang发布遇到的问题 对于golang的发布,之前一直没有一套规范的发布流程,来看看之前发布流程: 方案一 开发者本地环境需要将环境变量文件改 ...

  2. 利用ant脚本 自动构建svn增量/全量 系统程序升级包

    首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...

  3. 利用ant脚本 自动构建svn增量/全量 系统程序升级包【转】

    引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文 ...

  4. Dockerfile 构建后端springboot应用并用shell脚本实现jenkins自动构建

    Dockerfile 文件构建docker镜像 FROM centos MAINTAINER zh*****eng "z*******ch.cn" ENV LANG en_US.U ...

  5. Dockerfile 构建后端tomcat应用并用shell脚本实现jenkins自动构建

    Dockerfile 文件构建docker镜像 FROM centos MAINTAINER zhaoweifeng "zh******tech.cn" ENV LANG en_U ...

  6. Dockerfile 构建前端nginx应用并用shell脚本实现jenkins自动构建

    Dockerfile 文件构建docker镜像 FROM centos MAINTAINER zh********h.cn RUN rm -f /etc/nginx/nginx.conf COPY n ...

  7. 使用cmake自动构建工程

    公司引擎是用cmake根据目标平台来构建工程的,刚接触的时候深深体会到cmake的方便:如果目标平台是windows,它可以帮你自动构建出vs工程:如果是安卓,自动构建出eclipse工程,如果是IO ...

  8. Windows Server配置Jenkins,实现监测SVN提交自动构建.net4.5的项目

    1,持续集成 概念:http://baike.baidu.com/view/5253255.htm,对于大多数人而言,自动构建/自动测试/自动部署,已经很发挥它的价值了.选择上: 推荐jenkins, ...

  9. Yeoman自动构建js项目

    Aug 19, 2013 Tags: bowergruntJavascriptjsnodejsyeomanyo Comments: 10 Comments Yeoman自动构建js项目 从零开始nod ...

随机推荐

  1. [2019.03.20]Linux Shell 执行传参数和expr

    前不久入职实习生,现在在帮着组里面dalao们跑Case,时不时要上去收一下有木有Dump,每次敲命令太烦人于是逼着自己学写Shell脚本.一开始真的是很痛苦啊,也没能搞到书,只能凭网上半真半假的消息 ...

  2. 洛谷P3469[POI2008]BLO-Blockade

    题目 割点模板题. 可以将图中的所有点分成两部分,一部分是去掉之后不影响图的连通性的点,一部分是去掉之后影响连通性的点,称其为割点. 然后分两种情况讨论,如果该点不是割点,则最终结果直接加上2*(n- ...

  3. 「Algospot」津巴布韦ZIMBABWE

    同时考验对状压DP和数位DP的理解: 传送门:$>here<$ 题意 给出一个数字$e$,现在对$e$通过$m$进行变换得到$x$:变换的要求是:1.只能改变原数字$e$各个数位的顺序(可 ...

  4. 第六届SD省赛 Circle of Friends

    Circle of Friends Time Limit: 2000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ...

  5. 第一模块:Python基础(二)

    目录 1.变量 常量 2.用户交互和注释 程序交互 注释 字符串 布尔型(bool) 格式化输出 运算符 while 循环 @(开发基础) 1.变量 变量用于存储要在计算机程序中引用和操作的信息.它们 ...

  6. Httpclient发送json请求

    一.Httpclient发送json请求 public String RequestJsonPost(String url){    String strresponse = null;    try ...

  7. Linux之 proc文件系统

    用户态与内核态交互的接口之一,管理方式与普通文件相同每个节点的文件权限(读/写)决定其查看和配置权限大量LINUX系统参数和状态信息可通过proc节点查看或配置/proc/<pid>/:查 ...

  8. sql0001

    001.   https://blog.csdn.net/qinshi965273101/article/details/81907658 002.    https://blog.csdn.net/ ...

  9. 基于jeesite的cms系统(三):使用RESTful API在前端渲染数据

    使用RESTful API可以更好的开发前后分离的应用,后面一节会介绍使用模版引擎Beetl开发后端渲染的应用. 一.配置Swagger(Api 接口文档) 1.使用系统自带 拷贝jeesite-mo ...

  10. Aras 引入外部的dll

    1.在vs中编译项目.然后找到项目目录生成好的dll. 2.找到Aras的安装目录:...\Aras\Innovator\Innovator\Server,将dll放到该目录下.然后在该目录下找到me ...