build_release.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!/bin/bash
  2. # 遇到错误立即退出
  3. set -e
  4. echo "========================================================"
  5. echo " ShuDao SafeAI 生产环境一键打包脚本 (Linux)"
  6. echo "========================================================"
  7. echo ""
  8. # 设置路径变量
  9. ROOT_DIR=$(pwd)
  10. FRONTEND_DIR="$ROOT_DIR/shudao-vue-frontend"
  11. BACKEND_DIR="$ROOT_DIR/shudao-go-backend"
  12. OUTPUT_DIR="$ROOT_DIR/deploy_output"
  13. # 1. 前端构建
  14. echo "[1/6] 正在构建前端项目 (Vue)..."
  15. cd "$FRONTEND_DIR"
  16. npm run build
  17. if [ $? -ne 0 ]; then
  18. echo "[ERROR] 前端构建失败!请检查错误信息。"
  19. exit 1
  20. fi
  21. echo "[SUCCESS] 前端构建完成。"
  22. echo ""
  23. # 2. 清理后端旧资源
  24. echo "[2/6] 清理后端旧资源..."
  25. cd "$ROOT_DIR"
  26. if [ -d "$BACKEND_DIR/assets" ]; then
  27. rm -rf "$BACKEND_DIR/assets"
  28. fi
  29. if [ -f "$BACKEND_DIR/views/index.html" ]; then
  30. rm -f "$BACKEND_DIR/views/index.html"
  31. fi
  32. echo "[SUCCESS] 清理完成。"
  33. echo ""
  34. # 3. 复制新资源
  35. echo "[3/6] 整合前端资源到后端..."
  36. mkdir -p "$BACKEND_DIR/assets"
  37. mkdir -p "$BACKEND_DIR/views"
  38. cp -r "$FRONTEND_DIR/dist/assets/"* "$BACKEND_DIR/assets/"
  39. cp "$FRONTEND_DIR/dist/index.html" "$BACKEND_DIR/views/index.html"
  40. echo "[SUCCESS] 资源整合完成。"
  41. echo ""
  42. # 4. 复制生产环境配置
  43. echo "[4/6] 复制生产环境配置..."
  44. mkdir -p "$BACKEND_DIR/conf"
  45. cp "$BACKEND_DIR/conf/app.conf.prod" "$BACKEND_DIR/conf/app.conf"
  46. echo "[SUCCESS] 配置文件已更新为生产环境。"
  47. echo ""
  48. # 5. 后端打包 (Linux amd64)
  49. echo "[5/6] 正在打包后端 (Target: Linux/amd64)..."
  50. cd "$BACKEND_DIR"
  51. bee pack -be GOOS=linux -be GOARCH=amd64
  52. if [ $? -ne 0 ]; then
  53. echo "[ERROR] 后端打包失败!请确保已安装 bee 工具。"
  54. exit 1
  55. fi
  56. echo "[SUCCESS] 后端打包完成。"
  57. echo ""
  58. # 6. 解压验证
  59. echo "[6/6] 解压验证 (Output: deploy_output)..."
  60. cd "$ROOT_DIR"
  61. if [ -d "$OUTPUT_DIR" ]; then
  62. rm -rf "$OUTPUT_DIR"
  63. fi
  64. mkdir -p "$OUTPUT_DIR"
  65. if [ -f "$BACKEND_DIR/shudao-go-backend.tar.gz" ]; then
  66. tar -xzf "$BACKEND_DIR/shudao-go-backend.tar.gz" -C "$OUTPUT_DIR"
  67. echo "[SUCCESS] 已解压到: $OUTPUT_DIR"
  68. else
  69. echo "[WARNING] 未找到压缩包,请手动检查。"
  70. fi
  71. echo ""
  72. echo "========================================================"
  73. echo " 打包流程全部完成!"
  74. echo "========================================================"
  75. echo ""
  76. echo "部署包位置: $BACKEND_DIR/shudao-go-backend.tar.gz"
  77. echo "解压预览: $OUTPUT_DIR"
  78. echo "环境: 生产环境 (aqai.shudaodsj.com)"
  79. echo ""