docs: 归档任务 #188

This commit is contained in:
chengma
2026-08-12 16:36:27 +08:00
parent 6ea45b7651
commit 3f5ee8303d
@@ -0,0 +1,61 @@
# 188 Admin:打包部署最新版本 6ea45b7 到生产服务器
- 工单号:#188
- 标题:Admin:打包部署最新版本 6ea45b7 到生产服务器
- 类型:部署
- 父级大工单:#14
- 所属 MVP / 版本:#15 Admin 四模块可用闭环
- 状态:待验收
- 日期:2026-08-12
- Gitea:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/188>
## 背景与目标
把提交 `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。
- **未验证到的部分**:没有使用生产账号登录后逐页进行浏览器人工功能验收;没有发起
真实顺运宝同步、采集或采购任务。