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

57 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# #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 并验证自动回退路径所需目标存在。
## 相关提交
- `a14c2bf` `docs: 归档任务 #219`(本次固定发布提交)
- `1ba5c88` `style: 压缩顺运宝工具条 (#219)`