Shell 自动化编译打包

背景

这里写图片描述

目前项目从mac上发布到测试环境需要经过上面的6个步骤,都是通过人工输入的shell以及git命令完成的,即便现在再熟悉了,也需要花个几分钟来编译打包,所以基于此编写了一套shell脚本来完成上述的6个步骤,达到自动化编译打包的目的。

代码

以下的huiyan-front 为源码库,huiyan_web为发布库
其中,需要修改源码库的一个文件的域名

#!/bin/sh

#  ys-shell.sh
#  
#
#  Created by liuyuqin on 2017/12/20.
#

echo "******************自动化运行脚本*****************"
echo "*****功能:编译最新代码到验收环境(staging/huiyan_web)*****"


function recursive_copy_file(){
  dirlist=$(ls $1)
  for name in ${dirlist[*]}
  do
    if [ -f $1/$name ]; then
        # 如果是文件,并且$2不存在该文件,则直接copy
        if [ ! -f $2/$name ]; then
            cp $1/$name $2/$name
        fi
    elif [ -d $1/$name ]; then
        # 如果是目录,并且$2不存在该目录,则先创建目录
        if [ ! -d $2/$name ]; then
            mkdir -p $2/$name
        fi
        # 递归拷贝
        recursive_copy_file $1/$name $2/$name
    fi
 done
}

source_dir="/Users/aaa/HY/huiyan-front/huiyan-web"
dist_dir="/Users/aaa/HY/huiyan-front/huiyan-web/dist"
dest_dir="/Users/aaa/HY/staging/huiyan_web/src/main/webapp"

# 切换home目录
cd ~

# 切换huiyan-front目录
cd ${source_dir}

# 更新代码
echo "*****开始更新代码 代码库:huiyan-front*****"
git pull

# 修改xx.jd.com改成xxb.jd.com
cd /Users/aaa/HY/huiyan-front/huiyan-web/src/views
echo "*****开始修改源码文件中的huiyan.jd.com为huiyanb.jd.com*****"
sed -i "" "s/xx.jd.com/xxb.jd.com/g" globalConfig.js
sed -i "" "s/xx.jd.com/xxb.jd.com/g" globalConfig.js

# dist打包
echo "*****开始dist打包*****"
gulp dist

# 修改xxb.jd.com改成xx.jd.com
cd /Users/aaa/HY/huiyan-front/huiyan-web/src/views
echo "*****开始修改源码文件中的huiyan.jd.com为huiyanb.jd.com*****"
sed -i "" "s/xxb.jd.com/xx.jd.com/g" globalConfig.js
sed -i "" "s/xxb.jd.com/xx.jd.com/g" globalConfig.js


# 删除目标文件夹
echo "*****开始删除验收文件夹(huiyan_web)*****"
cd ${dest_dir}
shopt -s extglob
rm -fr !(WEB-INF)
git add -A
git commit -m "delete by mac-user at `date '+%Y-%m-%d %H:%M:%S'`"
git push

# 复制文件
echo "*****开始复制文件*****"
echo "*****From:huiyan-front/huiyan-web/dist*****"
echo "*****To: huiyan_web/src/main/webapp*****"
recursive_copy_file $dist_dir $dest_dir
git add -A
git commit -m "create by mac-user at `date '+%Y-%m-%d %H:%M:%S'`"
git push

echo "------------------------------------------"
echo "-                                        "
echo "-    ALL DONE SUCCESS 输入任意键关闭脚本    "
echo "-                                        "
echo "------------------------------------------"
read anykey


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值