Files
cmautobuy/docs/task/220-部署顺运宝工具条压缩版本.md
T

3.5 KiB
Raw Blame History

#220 Admin:部署顺运宝工具条压缩版本到生产服务器

背景与目标

把 #219 已完成的顺运宝工具条压缩版本部署到生产服务器,使公网 Admin 使用固定提交 a14c2bf 对应的代码,同时保留发布前版本和数据库备份以便回退。

最终方案

  • 在仓库外使用提交 a14c2bf 的 detached worktree 构建,隔离主工作区已有且与本次无关的改动。
  • 使用 Go 1.23.0 完成全量构建、测试和静态检查,再交叉编译 Linux amd64 发布物。
  • 发布前连续三次确认没有运行中的顺运宝同步;schema 确认为 v19,并生成经过 gzip 和 SHA-256 校验的 MySQL 备份。
  • 将发布物安装到独立目录 /opt/cmautobuy/releases/a14c2bf/,核对本地、上传文件和安装文件 SHA-256 后,原子切换稳定二进制链接并重启服务。
  • 新版本健康检查失败时,部署脚本会把稳定链接切回部署前 release;本次健康检查通过,没有触发回退。
  • 未修改生产配置、凭据和数据库结构,也未触发任何同步、采集或采购业务操作。

改了哪些

  • 生产 release:/opt/cmautobuy/releases/a14c2bf/cmautobuy-admin。
  • 稳定二进制链接:/opt/cmautobuy/cmautobuy-admin 已切换到上述 release。
  • 发布前 release:/opt/cmautobuy/releases/5bf6764/cmautobuy-admin,继续保留用于回退。
  • 数据库备份:/opt/cmautobuy/backups/autobuy-before-220-20260813T073351Z.sql.gz,权限为仅管理员可读写。
  • 本地未修改 Admin 业务代码;部署脚本为临时文件,执行完成后已清理。

验收结果

验收标准 结果
发布物只来自固定提交 a14c2bf,Go 1.23.0 构建、测试和 vet 全部通过 通过
发布前没有运行中的 SYB 同步,并生成可读取、可校验的数据库备份 通过:连续三次均为 0,备份 gzip 与 SHA-256 校验通过
远端发布物 SHA-256 与本地一致,稳定链接指向新的独立 release 通过:SHA-256 为 cf60221ce00462cf0fedcaf24c1491275a22165bd81e63d5cc30fdfe4975332d
Admin 服务 active/enabled,schema 仍为 v19 通过
本机和公网 HTTP、18080 监听正常 通过:根路径 303,登录页 200,端口正常监听
线上 CSS 包含本次顺运宝紧凑布局标识 通过:包含 .syb-toolbar 和 .syb-date-separator
部署前 release 保留且可以回退 通过

测试

  • 执行的命令:
    • $env:GOTOOLCHAIN='go1.23.0'; go build ./...; go test ./... -count=1; go vet ./...
    • Linux amd64、CGO_ENABLED=0 的固定提交交叉编译。
    • 生产侧检查 systemd 状态、release 链接、SHA-256、schema、SYB 同步运行数、18080 监听、本机 HTTP 与启动日志。
    • 公网检查 https://buy.833729.com/、https://buy.833729.com/login 和 /static/css/app.css。
  • 结果:全量检查和生产健康检查全部通过;新 release 已生效,启动错误计数为 0。
  • 没验证到的部分:未使用生产账号登录后手工操作顺运宝页面,也未触发真实同步、采集或采购;未实际执行回退,已保留旧 release 并验证自动回退路径所需目标存在。

相关提交

  • a14c2bf docs: 归档任务 #219(本次固定发布提交)
  • 1ba5c88 style: 压缩顺运宝工具条 (#219)