3.1 KiB
3.1 KiB
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 amd64go build;生产执行mysqldump、gzip -t、sha256sum、systemctl、ss、schema 查询及本机/公网curl健康检查。 - 结果:全部 Go 包通过;备份和二进制校验通过;线上服务 active/enabled;schema v13; 本机根路径 303、登录页 200;服务器和外部网络访问公网登录页均为 200;启动后错误日志计数为 0。
- 未验证到的部分:没有使用生产账号登录后逐页进行浏览器人工功能验收;没有发起 真实顺运宝同步、采集或采购任务。