# 188 Admin:打包部署最新版本 6ea45b7 到生产服务器 - 工单号:#188 - 标题:Admin:打包部署最新版本 6ea45b7 到生产服务器 - 类型:部署 - 父级大工单:#14 - 所属 MVP / 版本:#15 Admin 四模块可用闭环 - 状态:待验收 - 日期:2026-08-12 - Gitea: ## 背景与目标 把提交 `6ea45b7` 对应的最新 Admin 代码构建并发布到生产服务器,通过 `https://buy.833729.com` 提供服务,同时保留生产配置、数据、发布前数据库备份和 上一版本回退能力。 ## 最终方案 - 使用固定 Go 1.23.0 验证代码并构建 Linux amd64、CGO 关闭的单文件二进制。 - 发布前通过生产环境文件读取业务数据库连接参数,使用单事务逻辑备份,并校验 gzip 完整性和文件权限。 - 上传到独立目录 `/opt/cmautobuy/releases/6ea45b7/`,复用稳定路径下的 `config.yaml` 和 `data`。 - 停止 systemd 服务后原子切换稳定执行链接;新版本启动或本机登录页健康检查失败 时自动切回上一版本。 - 不执行真实顺运宝同步、采集任务或采购下单。 ## 改了哪些文件 - 本地构建产物:`admin/.deploy/cmautobuy-admin-6ea45b7`(Git 忽略)。 - 生产发布目录:`/opt/cmautobuy/releases/6ea45b7/`。 - 生产稳定执行链接:`/opt/cmautobuy/cmautobuy-admin` 已指向本次 release。 - 生产备份:`/opt/cmautobuy/backups/autobuy-before-188-20260812T083428Z.sql.gz`。 - 本归档文档:`docs/task/188-admin打包部署最新版本.md`。 ## 验收结果 | 验收项 | 结果 | |---|---| | 固定 Go 1.23.0 的 `go vet ./...` 通过 | 通过 | | 全量 `go test ./... -count=1` 通过 | 通过 | | Linux amd64 二进制本地与远端 SHA-256 一致 | 通过:`f8e3bd1e813844a0fc74c7f06ed82d6cddc5e5ffe63faecf9eb4c219b0f17e17` | | 发布前数据库备份可用且权限为 600 | 通过:5,039,803 字节,`gzip -t` 通过 | | systemd 服务 active/enabled,运行目标正确 | 通过:`/opt/cmautobuy/releases/6ea45b7/cmautobuy-admin` | | Admin 监听生产约定地址 | 通过:`127.0.0.1:18080` | | 数据库 schema 版本正常 | 通过:v13 | | 本机根路径、登录页及公网登录页正常 | 通过:303、200、200 | | 启动日志无迁移失败、panic 或 fatal | 通过 | | 上一版本可以回退 | 通过:保留 `/opt/cmautobuy/releases/7e2d33c/cmautobuy-admin` | ## 测试 - 执行命令:固定 `GOTOOLCHAIN=go1.23.0` 的 `go vet ./...`、 `go test ./... -count=1`、Linux amd64 `go build`;生产执行 `mysqldump`、 `gzip -t`、`sha256sum`、`systemctl`、`ss`、schema 查询及本机/公网 `curl` 健康检查。 - 结果:全部 Go 包通过;备份和二进制校验通过;线上服务 active/enabled;schema v13; 本机根路径 303、登录页 200;服务器和外部网络访问公网登录页均为 200;启动后错误日志计数为 0。 - **未验证到的部分**:没有使用生产账号登录后逐页进行浏览器人工功能验收;没有发起 真实顺运宝同步、采集或采购任务。