背景
有一些前端项目, 没有独立的的各环境部署流程, 需要依附后台项目的静态服务来一同部署, 这种情况下, 前端同学提交一次代码将会是很繁杂的操作
修改代码
打包项目
前端项目 Git 提交
拉取后台项目最新代码
删除后台项目的静态服务目录下, 旧的前端打包资源
把新的前端资源复制到静态服务目录下
后台项目 Git 提交
一次两次的上线还可容忍, 但测试阶段, 修改 bug 时, 就需要不停重复上述流程, 来部署测试环境. 忍无可忍, 无须再忍...
使用 shell 脚本组合这一系列的操作, 省时省力
- #!/bin/bash
- # 进入后台项目 静态资源目录 =======
- cd ./background-project/web/src/main/resources/static/
- # 获取当前分支 =======
- branch=$(Git symbolic-ref --short HEAD)
- # 拉去当前分支最新代码 =======
- Git pull origin "$branch"
- echo -e "\n\nbackground-project 项目当前的分支为: $branch"
- read -p $'\n\n 请确认分支, 是否继续操作? y or n:' isContinue
- if [ "$isContinue" != 'y' ];then
- exit
- fi
- # 替换文件 =======
- # 删除旧的打包资源
- rm -r ./static
rm index.html
- # 复制新的打包资源到后台目录下
- cp -r ../../../../../../fe-project/dist/* ./
- Git status
- read -p $'\n\n 已替换文件成功, 是否继续提交操作? y or n:' isContinueSubmit
- if [ "$isContinueSubmit" != 'y' ];then
- Git reset --hard ^HEAD
- exit
- fi
- # Git 提交 =======
- Git add .
- read -p $'\n\n 请输入您的 commit 信息:' commitInfo
- Git commit -m ${commitInfo}
- Git push origin ${branch}
项目地址
使用
本人把 shell 文件放在了与前后端项目同级的目录下. 也可以把它放在后端项目的静态目录下, 记得把它添加进. gitignore 避免提交就可以了.
自行修改前端项目打包资源路径, 后端项目静态资源目录路径
Git bash(Windows)或终端 (Linux) 中进入 shell 文件目录下, 使用 sh 命令即可执行 shell 文件: sh ./shell-tool.sh.
难度不大, 仅仅是一些 shell 命令和 Git 命令的堆砌, 但也学了一些东西
echo -e 可以识别转义字符. 可以在输出时加入换行符
echo -e '\n hello world'
实现换行
使用 $''形式的字符串, 可以在 read 命令中使提示语换行. see here
read 命令
Git 获取当前项目分支
- branch=$(Git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')
- see here
来源: http://www.jianshu.com/p/b08785f9086c