build_release.bat 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo ========================================================
  4. echo ShuDao SafeAI 生产环境一键打包脚本
  5. echo ========================================================
  6. echo.
  7. :: 设置路径变量
  8. set "ROOT_DIR=%CD%"
  9. set "FRONTEND_DIR=%ROOT_DIR%\shudao-vue-frontend"
  10. set "BACKEND_DIR=%ROOT_DIR%\shudao-go-backend"
  11. set "OUTPUT_DIR=%ROOT_DIR%\deploy_output"
  12. :: 1. 前端构建
  13. echo [1/5] 正在构建前端项目 (Vue)...
  14. cd "%FRONTEND_DIR%"
  15. call npm run build
  16. if %errorlevel% neq 0 (
  17. echo [ERROR] 前端构建失败!请检查错误信息。
  18. pause
  19. exit /b %errorlevel%
  20. )
  21. echo [SUCCESS] 前端构建完成。
  22. echo.
  23. :: 2. 清理后端旧资源
  24. echo [2/5] 清理后端旧资源...
  25. cd "%ROOT_DIR%"
  26. if exist "%BACKEND_DIR%\assets" (
  27. rmdir /s /q "%BACKEND_DIR%\assets"
  28. )
  29. if exist "%BACKEND_DIR%\views\index.html" (
  30. del /q "%BACKEND_DIR%\views\index.html"
  31. )
  32. echo [SUCCESS] 清理完成。
  33. echo.
  34. :: 3. 复制新资源
  35. echo [3/5] 整合前端资源到后端...
  36. :: 复制 assets 目录
  37. if not exist "%BACKEND_DIR%\assets" mkdir "%BACKEND_DIR%\assets"
  38. xcopy /E /Y /I /Q "%FRONTEND_DIR%\dist\assets" "%BACKEND_DIR%\assets"
  39. :: 复制 index.html
  40. copy /Y "%FRONTEND_DIR%\dist\index.html" "%BACKEND_DIR%\views\index.html" >nul
  41. echo [SUCCESS] 资源整合完成。
  42. echo.
  43. :: 4. 后端打包 (Linux amd64)
  44. echo [4/5] 正在打包后端 (Target: Linux/amd64)...
  45. cd "%BACKEND_DIR%"
  46. :: 使用 bee pack 打包,指定目标系统为 Linux
  47. call bee pack -be GOOS=linux -be GOARCH=amd64
  48. if %errorlevel% neq 0 (
  49. echo [ERROR] 后端打包失败!请确保已安装 bee 工具 (go install github.com/beego/bee/v2@latest)。
  50. pause
  51. exit /b %errorlevel%
  52. )
  53. echo [SUCCESS] 后端打包完成。
  54. echo.
  55. :: 5. 解压验证
  56. echo [5/5] 解压验证 (Output: deploy_output)...
  57. cd "%ROOT_DIR%"
  58. if exist "%OUTPUT_DIR%" (
  59. rmdir /s /q "%OUTPUT_DIR%"
  60. )
  61. mkdir "%OUTPUT_DIR%"
  62. :: 检查压缩包是否存在
  63. if exist "%BACKEND_DIR%\shudao-go-backend.tar.gz" (
  64. :: 使用 tar 命令解压 (Win10+ 自带)
  65. tar -xzf "%BACKEND_DIR%\shudao-go-backend.tar.gz" -C "%OUTPUT_DIR%"
  66. echo [SUCCESS] 已解压到: %OUTPUT_DIR%
  67. ) else (
  68. echo [WARNING] 未找到压缩包,可能打包名称不匹配,请手动检查 shudao-go-backend 目录。
  69. )
  70. echo.
  71. echo ========================================================
  72. echo 打包流程全部完成!
  73. echo ========================================================
  74. echo.
  75. echo 部署包位置: %BACKEND_DIR%\shudao-go-backend.tar.gz
  76. echo 解压预览: %OUTPUT_DIR%
  77. echo.
  78. pause