# /bin/zsh # 工程目录设置 PROJECT_DIR=$(cd $(dirname $0); pwd) echo "\033[35m 当前工程目录为${PROJECT_DIR} \033[0m" DIST_DIT="${PROJECT_DIR}/dist/" echo "\033[35m 当前编译目录为${DIST_DIT} \033[0m" CURRENT_BRANCH="" # 压缩文件名设置 CUR_DATATIME="`date +%Y-%m-%d_%H-%M`" ZIP_NAME="${CUR_DATATIME}.zip" # 服务器设置 SSH_HOST="101.201.121.115" SSH_USER="administrator" SSH_PASSWORD="Leit2021@@" # 部署目录 REMOTE_DIR="C:/frontendApp/mds/dist/" # 获得当前分支 CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) echo "\033[32m 当前分支为 ${CURRENT_BRANCH} \033[0m" # 切换分支到develop上,并拉取最新代码 echo "\033[32m 切换分支到develop \033[0m" (git checkout develop) >/dev/null 2>&1 echo "\033[32m 拉取develop最新数据 \033[0m" (git pull) >/dev/null 2>&1 echo "\033[32m 拉取完成 \033[0m" # 开始本地打包并亚瑟 echo "\033[32m 开始部署文件,现在进行打包 \033[0m" cd $PROJECT_DIR (yarn build:dev) >/dev/null 2>&1 echo "\033[32m 打包完成 \033[0m" echo "\033[32m 开始压缩文件 \033[0m" cd $DIST_DIT zip -q -r $ZIP_NAME ./ echo "\033[32m 压缩完成,文件名 ${ZIP_NAME} \033[0m" cp ${DIST_DIT}${ZIP_NAME} "/Users/denny/Downloads/${ZIP_NAME}" echo "\033[32m 开始传输文件 \033[0m" # 远程传送文件 (expect -c " spawn scp $ZIP_NAME "${SSH_USER}@${SSH_HOST}:${REMOTE_DIR}" expect \"password:\" send \"${SSH_PASSWORD}\r\" expect eof ") >/dev/null 2>&1 echo "\033[32m 传送完成,传送到服务器目录:${REMOTE_DIR}${ZIP_NAME} \033[0m" # 远程解压及部署 echo "\033[32m 开始部署 \033[0m" (expect -c " spawn ssh -t "${SSH_USER}@${SSH_HOST}" set timeout 3 expect \"password:\" send \"${SSH_PASSWORD}\r\" expect \"\$\" send \"cd ${REMOTE_DIR}\r\" expect \"\$\" send \"rmdir /s /q static && del index.html favicon.ico\r\" expect \"\$\" send \"unzip ${ZIP_NAME}\r\" expect \"\$\" send \"del ${ZIP_NAME}\r\" send \"exit\r\" expect eof ") >/dev/null 2>&1 echo "\033[32m 部署完成 \033[0m" # 切回分支 echo "\033[32m 切换回到${CURRENT_BRANCH} \033[0m" (git checkout $CURRENT_BRANCH) >/dev/null 2>&1