3.5 KiB
3.5 KiB
#220 Admin:部署顺运宝工具条压缩版本到生产服务器
- 类型:需求
- 父级大工单:#14
- 所属 MVP / 版本:#15 / Admin MVP 后续优化
- 状态:已完成
- 日期:2026-08-13
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/220
背景与目标
把 #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 并验证自动回退路径所需目标存在。
相关提交
a14c2bfdocs: 归档任务 #219(本次固定发布提交)1ba5c88style: 压缩顺运宝工具条 (#219)