#!/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. 单元测试之Fixture

    声明: 作者:zhaojun  创建日期:2017-08-04  更新日期:2017-08-07 一.什么是Fixture,Fixture有什么作用,为什么需要使用Fixture # 下载 pip i ...

  2. 想玩 Android 开发板?这些常用命令你不知不行!

    2019-04-19 关键字:Android机顶盒常用命令.Linux命令 笔者早年间从事 Android 机顶盒开发工作,那会刚毕业,技术也比较菜,工作过程中遇到过不少困难,不过所幸当时就有做笔记的 ...

  3. ICPC China Nanchang National Invitational -- D. Match Stick Game(dp)

    题目链接:https://nanti.jisuanke.com/t/38223 题意:有一堆火柴构成了一个加减法式子,你可以把火柴重新组合,要求数字个数和原来一样多,每个数字的位数和对应原数字位数一样 ...

  4. 第二周博客作业<西北师范大学|李晓婷>

    1.助教博客链接:https://home.cnblogs.com/u/lxt-/ 2.点评作业内容: https://www.cnblogs.com/dxd123/p/10494907.html#4 ...

  5. Python的优势及应用领域

    Python的优势 Python是一门解释型语言,是比较容易入门. Python的程序代码更接近英语,更好好理解. Python的扩展库非常丰富. Python与C的粘合性非常好. Python的缺点 ...

  6. ZooKeeper-API 监听

    以服务动态上下线通知为例 Client 监听服务器状态 public class DistributeClient { private String connectString = "127 ...

  7. python3导入sqlite3报错

    今天把本地运行OK的scrapy爬虫程序捣鼓到服务器上运行,结果报了以下错误 2018-10-11 19:00:19 [twisted] CRITICAL: Unhandled error in De ...

  8. bzoj 4244 括号序列dp

    将各种情况绕环等看作括号序列,括号内的区域上下都需要累加答案,左右也是 f[i][j] 代表 前i个车站已经处理完的有j个左括号的最小权值 我们可以发现,更新的来源来自于 i-1, 和 i 将上 描述 ...

  9. css实现背景模糊,但不影响背景上的内容

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 上传代码到github

    上传代码前需配置连接秘钥和设置本地git账号密码. 1.检查上传文件目录状态 git status 2.将更改文件添加到缓存区 git add . 3.添加本次代码更改说明 git commit -m ...