docs: 归档部署任务 #287

This commit is contained in:
chengma
2026-08-21 10:40:49 +08:00
parent e3cd5c7b32
commit c7f0ba9f9e
@@ -0,0 +1,68 @@
# 287 Admin:部署 AI 规格解析 66 秒等待时间到生产
- 类型:部署
- 父级大工单:#14
- 所属 MVP / 版本:#199 / Admin AI 规格批量匹配;#253 / 采购运行时 AI 规格纠偏闭环
- 状态:已完成,待用户验收
- 日期:2026-08-21
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/287
## 背景与目标
将 #286 的 Admin 运行时 AI 规格解析等待时间 66 秒发布到生产,并把唯一启用的 AI
服务商现有超时从 30 秒显式调整为 66 秒。发布前生产运行 `1675c8a`。
## 最终方案
- 从固定提交 `e3cd5c7` 构建 Linux amd64 静态二进制;本地、上传和最终稳定链接的
SHA-256 均为 `83dd8694110ad18d80434fa95ed66497f4b71f422763bf1273d7417f4b9b5df2`。
- 切换前确认 schema 为 v29,SYB、目录导入和 AI 匹配活动任务均为 0;使用
`mysqldump --no-defaults --no-tablespaces` 创建逻辑备份并通过 gzip 校验。
- 新二进制先在 `127.0.0.1:18081` 预检,根路径为 303、登录页为 200;正式切换后最多
等待 15 秒,确认登录页已经监听后再执行健康检查。
- 发布到 `/opt/cmautobuy/releases/e3cd5c7/`,复用 release 外的 `config.yaml` 和 `data`
链接,原子切换 `/opt/cmautobuy/cmautobuy-admin`;上一 release `1675c8a` 保留可回退。
- 发布后以精确条件更新 `ai_provider_configs`:先确认只有一个 `enabled=1` 的服务商且
其超时为 30,再仅将该行 `timeout_seconds` 更新为 66。结果为一行变更,其他未启用
服务商的超时字段未变化。
- 没有读取或输出 AI 密钥,也没有发起真实 AI、创建规格映射、采购任务或 Client 任务。
Client 在线更新包未发布:已公开版本为 0.1.5,而 #286 的已提交版本源仍是 0.1.0,
不能覆盖已有发布文件。
## 改了哪些
- `/opt/cmautobuy/releases/e3cd5c7/cmautobuy-admin`:新增并启用生产二进制。
- `/opt/cmautobuy/cmautobuy-admin`:稳定链接从 `1675c8a` 原子切换到 `e3cd5c7`。
- `ai_provider_configs`:唯一启用项的 `timeout_seconds` 从 30 更新为 66。
- `/opt/cmautobuy/backups/autobuy-before-287-20260821T023756Z-notablespaces.sql.gz`:部署前
逻辑备份,86,242,172 字节,SHA-256 为
`875ecca8e338ab7947cce796e781d5b6dd86b412bf8c5585b3ce7b33f53ccab5`,权限 0600。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 发布物来自固定提交,构建、上传和安装 SHA-256 一致 | 通过 |
| 切换前后台作业为空,逻辑备份可通过 gzip 校验 | 通过 |
| 独立端口预检根路径为 303、登录页为 200 | 通过 |
| systemd active/enabled,稳定链接指向新 release | 通过 |
| Nginx、本机和公网 HTTPS 根路径、登录页正常 | 通过 |
| 唯一启用 AI 服务商的超时为 66,其他未启用服务商未变 | 通过 |
| 未读取密钥,未触发真实 AI 或其他业务写入;Client 更新包未覆盖 | 通过 |
| 上一 release `1675c8a` 保留,可切回 | 通过 |
## 测试
- 执行的命令:在 `admin/` 以 Go 1.23.0 执行 `go test ./... -count=1`、`go build ./...`、
`go vet ./...`;以 `GOOS=linux GOARCH=amd64 CGO_ENABLED=0` 构建发布物。服务器执行
SHA-256、`mysqldump --no-defaults --no-tablespaces`、`gzip -t`、独立端口预检、schema 与
活动任务查询、systemd、端口监听和 `nginx -t`;本机执行公网 HTTPS 检查。
- 结果:服务运行 `e3cd5c7`,schema 为 v29,启用服务商超时为 66;本机和公网根路径均为
303、登录页均为 200;启动后没有 fatal、panic 或迁移失败日志。
- **没验证到的部分**:未使用真实 GPT-5.5 发起 66 秒规格解析;未验证 Client 132 秒
请求窗口的端到端行为;没有发布 Client 在线更新包;未实际执行回退或恢复备份。
## 相关提交
- `dc808e2` feat: 调整 AI 规格解析等待时间 (#286)
- `e3cd5c7` docs: 归档任务 #286(本次生产目标代码基线)