build.sh 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. #!/bin/bash
  2. #本地压缩文件名
  3. file_name="saber.zip"
  4. #测试服器上的目录地址
  5. file_path="testmanger.hczcxx.cn"
  6. #测试服务器上的演示地址
  7. demo_url="http://192.168.0.109:1888/"
  8. #测试服务器上的登录密码
  9. passwd="admin123@"
  10. # 打包前的准备
  11. node ./scripts/build.js
  12. # 执行打包命令
  13. vue-cli-service build
  14. # 恢复配置文件
  15. node ./scripts/restore.js
  16. # 排除打包文件
  17. if [ $1 == "wgt" ]; then
  18. node ./scripts/public.js
  19. fi
  20. # 执行打包为zip
  21. node ./scripts/zip.js
  22. current_time=$(date "+%Y%m%d%H%M%S")
  23. # 上传到测试服务器
  24. function testServer() {
  25. expect -c "
  26. spawn scp ./zip/${file_name} root@192.168.0.109:/www/wwwroot/${file_path}
  27. expect {
  28. \"yes/no\" {send \"yes\r\";exp_continue;}
  29. \"*password\" {set timeout 500;send \"${passwd}\r\";}
  30. }
  31. expect eof"
  32. #服务器上的相关操作
  33. /usr/bin/expect << EOF
  34. set time 30
  35. spawn ssh root@192.168.0.109
  36. expect {
  37. "*yes/no" { send "yes\r"; exp_continue }
  38. "*password:" { send "${passwd}\r" }
  39. }
  40. # 进入当前项目的目录
  41. expect "*]#"
  42. send "cd /www/wwwroot/${file_path}\r"
  43. # 删除 css 目录
  44. expect "*]#"
  45. send "rm -rf css\r"
  46. # 删除 js 目录
  47. expect "*]#"
  48. send "rm -rf js\r"
  49. # 解压上传的文件压缩包
  50. expect "*]#"
  51. send "unzip -o ${file_name}\r"
  52. # 备份上一次的压缩文件
  53. expect "*]#"
  54. send "mv ./backup/${file_name} ./backup/${current_time}_${file_name}\r"
  55. # 执行清理备份文件脚本
  56. expect "*]#"
  57. send "node ./backup.js\r"
  58. # 移动当前文件到备份目录
  59. expect "*]#"
  60. send "mv ./${file_name} ./backup/${file_name}\r"
  61. # 退出
  62. send "exit\r"
  63. expect eof
  64. EOF
  65. echo "编译打包后自动部署到测试服务器上完成"
  66. echo "测试服务器地址:${demo_url}"
  67. }
  68. # 删除 public 等目录
  69. function delPublic() {
  70. echo "准备移除 public 下的静态目录文件"
  71. #服务器上的相关操作
  72. /usr/bin/expect << EOF
  73. set time 30
  74. spawn ssh root@192.168.0.109
  75. expect {
  76. "*yes/no" { send "yes\r"; exp_continue }
  77. "*password:" { send "${passwd}\r" }
  78. }
  79. # 进入当前项目的目录
  80. expect "*]#"
  81. send "cd /www/wwwroot/${file_path}\r"
  82. # 删除 app 目录
  83. expect "*]#"
  84. send "rm -rf app\r"
  85. # 删除 cdn 目录
  86. expect "*]#"
  87. send "rm -rf cdn\r"
  88. # 删除 img 目录
  89. expect "*]#"
  90. send "rm -rf img\r"
  91. # 删除 svg 目录
  92. expect "*]#"
  93. send "rm -rf svg\r"
  94. # 删除 util 目录
  95. expect "*]#"
  96. send "rm -rf util\r"
  97. # 退出
  98. send "exit\r"
  99. expect eof
  100. EOF
  101. echo "public 下的静态目录文件移除完成"
  102. }
  103. # 上传到测试服务器
  104. if [ $2 == "test" ]; then
  105. if [ $1 == "all" ]; then
  106. delPublic
  107. fi
  108. testServer
  109. else
  110. echo "编译完成"
  111. fi