deploy_dev.sh 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/bin/bash
  2. function deploy(){
  3. # 先删除配置文件,部署时不覆盖服务器上原有的配置文件
  4. if [ -f dist/otaConfig.js ]; then
  5. rm dist/otaConfig.js
  6. fi
  7. # OTA测试服务器上的配置文件相对路径需要修改一下,把index.html中的../otaConfig.js改为./otaConfig.js
  8. # 把文本文件index.html中的src='../otaConfig.js?v=替换为src='./otaConfig.js?v=
  9. sed -i "s/src='..\/otaConfig.js?v=/src='.\/otaConfig.js?v=/g" dist/index.html
  10. # 检查7z命令是否可用
  11. if ! command -v 7z >/dev/null 2>&1; then
  12. echo "请先运行 npm install -g 7zip 安装7zip命令行工具!"
  13. exit 1
  14. fi
  15. local username=$username_param
  16. local ip_address=$ip_address_param
  17. local folder_name=$folder_name_param
  18. local server_path=$server_path_param
  19. local zip_filename=$zip_filename_param
  20. # 压缩打包后的文件
  21. 7z a $zip_filename ./dist/*
  22. if [ $? -eq 0 ]; then
  23. echo "压缩打包成功"
  24. else
  25. echo "压缩打包失败"
  26. return 1
  27. fi
  28. # 迁移压缩文件到服务器对应目录下
  29. (set -x;scp ./$zip_filename $username@$ip_address:$server_path)
  30. if [ $? -eq 0 ]; then
  31. echo "文件迁移成功"
  32. else
  33. echo "文件迁移失败"
  34. return 1
  35. fi
  36. # 本地删除上传后的压缩文件
  37. rm $zip_filename
  38. # 在服务器上解压缩文件
  39. # ssh $username@$ip_address "cd $server_path && unzip -o $zip_filename -d $folder_name && chmod -R 775 $folder_name && rm $zip_filename"
  40. # ota测试环境是直接放在frontend目录下的,故把文件夹的内容移动到frontend目录,并删除原目录
  41. # 需要先删除static目录,旧的static目录会导致mv不成功
  42. (set -x;ssh $username@$ip_address "cd $server_path && unzip -o $zip_filename -d $folder_name && chmod -R 775 $folder_name && rm $zip_filename && rm -rf static && mv $folder_name/* $server_path && rmdir $folder_name")
  43. if [ $? -eq 0 ]; then
  44. echo "解压缩成功"
  45. else
  46. echo "解压缩失败"
  47. return 1
  48. fi
  49. echo "恭喜:"$folder_name_param"发布圆满成功!🎉🚀"
  50. return 0
  51. }
  52. # 调用build函数,并传递配置项参数
  53. username_param="clear"
  54. ip_address_param="192.168.30.152" # OTA测试环境
  55. folder_name_param="my_awesome_ota" # 实际上没用,ota测试环境是直接放frontend文件夹里面,并非单独文件夹
  56. server_path_param="/home/clear/frontend/"
  57. zip_filename_param="build.zip"
  58. deploy
  59. ###################################################
  60. # 使用git-bash来运行npm run deploy:dev
  61. # 在Windows上使用npm install -g 7zip来安装7z命令
  62. # selfMarketing名字不可随意更改,否则覆盖服务器相关文件夹
  63. # 测试环境暂时没有备份机制
  64. ###################################################