导语
经常开发完毕demo版本,需要部署服务器端,进行demo展示。之前是服务器端走Jenkins流程打包,可是构建速度慢,搁置了。从入职到现在,一直都是本地打包,心里不是滋味。加上本地电脑space 剩余不足,经常需要重启,太耽误时间了。狠下下来,一口气改用shell + git 在服务器端构建,然后一键部署,后面会整合可视化、及时通知。
本文,介绍shell + git linux构建如果要点,具体环境的准备需要自己搜索下。
流程
- 登录到服务器
- shell输入用户、构建分支、需要部署在哪个环境
- git clone根据用户access_token,分支,git clone对应code
- code clone完毕,根据环境配置,替换掉里面的环境配置
- 最后调用项目构建打包脚本,进行打包、部署
正文
git
git 之前需要配置ssh key才能pull code, 目前推荐使用person_access token
如何shell中无交互clone
常用的如下:
# 输入如下,会交互输入username,password
git clone https://github.com/xxx/webpack-demo.git
git clone git@github.com:xxx/webpack-demo.git
无交互(要求使用https协议)如下:
git clone https://username:accesstoken@github.com/xxx/webpack-demo.git
注意:
创建access_token, 勾选read权限,即可,不用勾选write、delete。
shell
if/fi
if 条件判断
if [ $? != 0 ] ; then
echo "error...."
fi
$1,$2
初始化设置,按照位置获取传入的参数
> ./build.sh test demo-branch
# test 赋值给username, demo-branch赋值给branch,默认值在后面
username=${1:-'como'}
branch=${2:-'demo'}
-z
空字符判断
if [ -z name ] ; then
echo ""
fi
数值加
let
let step = $step + 1;
字符替换
sed , @作为分隔符,把url.config.ts 中 prod.example.com 替换为demo.example.com
sed -i 's@prod.exmaple.com@demo.example.com@g' url.config.ts