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


猜你喜欢

转载自blog.csdn.net/liuyuqin1991/article/details/78855230