前言
长期遭受 打包、连服务器、输密码、解压等机械、非人流程,不堪其扰,最近稍微闲点,就考虑自动化部署了——shell脚本。
方法
做起来非常简单
新建一个 .sh
文件(建议放在项目的同级目录,node_modules那一级),输入你们发版的相关步骤:
以我的为例:
# !/usr/bin/bash
# chmod +x bash_expect.sh Linux上通过这个提升到执行权限
# 设置超时时间
set time 30
# 该脚步必须建立在免密登陆的基础上(把本地公钥放到服务器上)
npm run build
tar -czvf dist.tar.gz dist/
ls -ls
scp -P 3333 dist.tar.gz root@10.0.0.133:/data/programs/front_end/web/work_order
ssh root@10.0.0.133 -p 3333 'cd /data/programs/front_end/web/work_order; rm -rf dist; tar -xzvf dist.tar.gz; ls -l; sleep 5; exit'
最后 执行 ./publish.sh即可(Linux上,第一次执行会提醒权限不够,需要用执行上面 chmod行的方法。Windows上直接将其打开方式更改为 git 就行,见下图)。
注意点:
1、# !/usr/bin/bash 这个是解释器,不能删除。
2、ssh [email protected] 后面的单引号 不能删除**, 删除后,后面的指令不能在服务器上执行(简言之,在服务器上的操作,均需要在)。
延申:
1、服务器免密登录的方法
2、上面的 sleep 5;
代表着 沉睡5秒后,继续运行下一步。
3、sleep 5;
可以用下面这个代替;
echo "press any key to continue";
read;
read;
的作用是暂停。