前言
在没有 ci 或者 jekenis 的支持下,是否还在为本地手动打包部署而烦恼?
本文主要针对远古级
部署而写对对应脚本
shell🌰
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| #!/bin/bash
PROMPT="是否更新dist?(y/n)" read -t 10 -p $PROMPT":" IS_UPDATE_DIST DIST_DIR="vue.config.js" USER_NAME="username" IP="test_ip" PORT="8080" PASSWORD="PASSWORD#" PROJECT_DIR="/front/dist" DINGDING_TALK_URL="https://oapi.dingtalk.com/robot/send" TALK_ACCESS_TOKEN="12321321"
if [ $IS_UPDATE_DIST == "n" ] then zip -r dist-2.zip $DIST_DIR elif [ $IS_UPDATE_DIST == "y" ] then echo "打包新的dist"
yarn -v && yarn build:test || npm run build:test
zip -r dist-2.zip $DIST_DIR else echo "该选项无效,请重新选择!" exit fi
expect <<EOD set timeout 30 spawn scp -P $PORT ./dist-2.zip $USER_NAME@$IP:$PROJECT_DIR expect "*assword*" send "$PASSWORD\r" expect eof EOD
echo "完成本地文件到服务器上传"
expect <<EOD set timeout 30 spawn ssh -p $PORT $USER_NAME@$IP expect "*assword*" send "$PASSWORD\r" expect "#*" send "cd $PROJECT_DIR\r" send "unzip dist-2.zip -d ./dist-demo1\r" expect eof EOD
echo "完成本地dist部署到服务器"
msg='{ "msgtype":"text", "text":{ title:"测试部署通知", content:"测试部署通知-content" } }'
curl -X POST $DINGDING_TALK_URL\?access_token\=$TALK_ACCESS_TOKEN -H 'Content-Type: application/json' -d "$msg"
echo "钉钉消息通知已发送"
exit
|
Author:
Nemo
Permalink:
http://github/nemoisme.github.io.com/2021/01/22/linux/shell-deploy/
License:
Copyright (c) 2019 CC-BY-NC-4.0 LICENSE
Slogan:
Do you believe in DESTINY?