- 增加 deploy/trialrun:Docker Compose + env 模板 + runbook + 发布/回滚 checklist - 新增 DB/文件存储备份恢复脚本(backup/restore) - 新增 system.users 运营接口:创建/启用禁用/重置密码/分配角色 + 审计 - 新增 seed:trialrun 引导管理员账号(一次性口令) - 补齐 SIGTERM/SIGINT 优雅停机(关闭 job/HTTP/DB)
44 行
2.1 KiB
Markdown
44 行
2.1 KiB
Markdown
# hyb-oa 试运行发布 Checklist(E19)
|
||
|
||
> 目标:一次发布可追踪、可回归、可回滚(10 分钟内恢复到上个版本)。
|
||
|
||
## A. 发布前(Pre-flight)
|
||
- [ ] 确认当前版本已打 tag:`git tag -a trialrun-YYYYMMDD-NN -m "trialrun release"`
|
||
- [ ] 本地门禁:`./scripts/check-minimal.sh`
|
||
- [ ] 全量回归(建议):`cd server && RUN_AUDIT_REGRESSION=1 RUN_OCR_REGRESSION=1 ./scripts/regression-all.sh`
|
||
- [ ] 备份(DB + 文件存储):
|
||
- [ ] `set -a && source deploy/trialrun/.env && set +a`
|
||
- [ ] `./scripts/backup-db.sh`(记录输出文件名)
|
||
- [ ] `./scripts/backup-storage.sh`(记录输出文件名)
|
||
|
||
## B. 发布(Deploy)
|
||
- [ ] `git checkout <tag>`
|
||
- [ ] 构建并启动:
|
||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env up -d --build server`
|
||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env run --rm init`
|
||
- [ ] 探活:
|
||
- [ ] `curl -fsS http://127.0.0.1:3000/ready`
|
||
- [ ] 登录验证(管理员账号):
|
||
- [ ] 访问 `http://127.0.0.1:3000`
|
||
- [ ] 登录成功,菜单权限正确
|
||
|
||
## C. 发布后(Post-check)
|
||
- [ ] 关键链路手工验证(建议至少一次):
|
||
- [ ] 员工:新建报销 → 上传票据 → 绑定 → 提交
|
||
- [ ] 经理:待办审批(approve)
|
||
- [ ] 财务:付款(含凭证字段)
|
||
- [ ] 查看 server 日志(无异常错误风暴):
|
||
- [ ] `docker logs --tail=200 hyb-oa-trialrun-server`
|
||
|
||
## D. 回滚(Rollback)
|
||
> 原则:如果涉及迁移,最快回滚通常是 “恢复备份 + 回到上个 tag”。
|
||
|
||
- [ ] 停止 server:`docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env stop server`
|
||
- [ ] 恢复 DB:`./scripts/restore-db.sh <db.dump>`
|
||
- [ ] 恢复存储:`./scripts/restore-storage.sh <storage.tar.gz> deploy/trialrun/data/storage`
|
||
- [ ] 回到上个版本:`git checkout <previous-tag>`
|
||
- [ ] 重启并探活:
|
||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env up -d --build server`
|
||
- [ ] `curl -fsS http://127.0.0.1:3000/ready`
|
||
|