2026-04-02 11:22:17 +08:00
|
|
|
|
# 生产级发布清单
|
|
|
|
|
|
|
refactor: 整理项目根目录结构
整理内容:
- 删除 60+ 临时测试输出文件 (*.txt)
- 移动二进制文件到 bin/ 目录
- 移动 Shell 脚本到 scripts/ 目录
- scripts/dev/: check_gitea.sh, check_sub2api.sh, run_tests.sh
- scripts/deploy/: deploy_*.sh, simple_deploy.sh
- scripts/ops/: fix_nginx.sh, fix_ssl.sh, install_docker.sh
- scripts/test/: test_*.sh, test_*.bat
- 移动批处理文件到 scripts/
- 移动 Python 脚本到 tools/
- 清理临时日志文件
保留根目录必要文件:
- go.mod, go.sum, go.work
- Makefile, docker-compose.yml
- .env.example, .gitignore
- README.md, AGENTS.md, DEPLOY_GUIDE.md
验证: go build ./... && go test ./... 通过
2026-04-07 18:10:36 +08:00
|
|
|
|
版本:3.0
|
|
|
|
|
|
更新时间:2026-04-02
|
2026-04-02 11:22:17 +08:00
|
|
|
|
|
|
|
|
|
|
本清单用于发布前、发布后和对外表述前的最后核查。
|
|
|
|
|
|
|
refactor: 整理项目根目录结构
整理内容:
- 删除 60+ 临时测试输出文件 (*.txt)
- 移动二进制文件到 bin/ 目录
- 移动 Shell 脚本到 scripts/ 目录
- scripts/dev/: check_gitea.sh, check_sub2api.sh, run_tests.sh
- scripts/deploy/: deploy_*.sh, simple_deploy.sh
- scripts/ops/: fix_nginx.sh, fix_ssl.sh, install_docker.sh
- scripts/test/: test_*.sh, test_*.bat
- 移动批处理文件到 scripts/
- 移动 Python 脚本到 tools/
- 清理临时日志文件
保留根目录必要文件:
- go.mod, go.sum, go.work
- Makefile, docker-compose.yml
- .env.example, .gitignore
- README.md, AGENTS.md, DEPLOY_GUIDE.md
验证: go build ./... && go test ./... 通过
2026-04-07 18:10:36 +08:00
|
|
|
|
## 0. PR 提交前检查(必须通过)
|
|
|
|
|
|
|
|
|
|
|
|
### 0.1 分支与提交
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 功能分支从 `main` 最新状态拉取
|
|
|
|
|
|
- [ ] 每个提交是可独立验证的最小单元
|
|
|
|
|
|
- [ ] 提交信息格式:`类型: 简短描述`
|
|
|
|
|
|
|
|
|
|
|
|
### 0.2 代码审查
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 至少 1 人完成代码审查
|
|
|
|
|
|
- [ ] 所有 🔴 阻塞问题已修复
|
|
|
|
|
|
- [ ] 所有 🟡 建议问题已有修复计划
|
|
|
|
|
|
|
|
|
|
|
|
### 0.3 验证矩阵
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 后端:`go test ./... -count=1` 通过
|
|
|
|
|
|
- [ ] 后端:`go vet ./...` 通过
|
|
|
|
|
|
- [ ] 后端:`go build ./cmd/server` 通过
|
|
|
|
|
|
- [ ] 前端:`npm.cmd run lint` 通过
|
|
|
|
|
|
- [ ] 前端:`npm.cmd run build` 通过
|
|
|
|
|
|
- [ ] 前端:`npm.cmd run test -- --run` 全绿(如改动前端代码)
|
|
|
|
|
|
- [ ] 真实浏览器 E2E:`npm.cmd run e2e:full:win` 通过(如涉及认证/导航/主流程)
|
|
|
|
|
|
|
|
|
|
|
|
### 0.4 文档
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] PR 描述包含变更目的、验证命令及结果、影响范围
|
|
|
|
|
|
- [ ] API 文档已更新(如改动 API)
|
|
|
|
|
|
- [ ] `docs/status/REAL_PROJECT_STATUS.md` 已同步更新(如改变真实结论)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-04-02 11:22:17 +08:00
|
|
|
|
## 1. 发布前必须完成
|
|
|
|
|
|
|
|
|
|
|
|
### 1.1 代码与构建
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] `go test ./... -count=1`
|
|
|
|
|
|
- [ ] `go vet ./...`
|
|
|
|
|
|
- [ ] `go build ./cmd/server`
|
|
|
|
|
|
- [ ] `cd frontend/admin && npm.cmd run lint`
|
|
|
|
|
|
- [ ] `cd frontend/admin && npm.cmd run build`
|
|
|
|
|
|
|
|
|
|
|
|
### 1.2 真实浏览器验证
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] `cd frontend/admin && npm.cmd run e2e:full:win`
|
|
|
|
|
|
- [ ] 本轮改动涉及认证、路由、导航、弹窗、防线或主流程时,不得跳过真实浏览器回归
|
|
|
|
|
|
|
|
|
|
|
|
### 1.3 运行时规则核查
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 非测试代码中无 `panic`
|
|
|
|
|
|
- [ ] 运行时无 mock provider / fake success 路径
|
|
|
|
|
|
- [ ] `smoke` 仅用于诊断,不是运行时依赖
|
|
|
|
|
|
- [ ] 敏感接口仍带 `no-store` 等防缓存头
|
|
|
|
|
|
- [ ] 邮件、短信、文件上传、外部调用均为 fail closed
|
|
|
|
|
|
|
|
|
|
|
|
### 1.4 配置与安全核查
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] release 模式下无占位密钥
|
|
|
|
|
|
- [ ] release 模式下无 localhost OAuth 回调
|
|
|
|
|
|
- [ ] release 模式下无 `*` CORS 放行
|
|
|
|
|
|
- [ ] 真实密钥来自环境变量或密钥管理系统
|
|
|
|
|
|
|
|
|
|
|
|
## 2. 可选但建议同时检查
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] `cd frontend/admin && npm.cmd run test:run`
|
|
|
|
|
|
- [ ] 已同步检查 `docs/status/REAL_PROJECT_STATUS.md`
|
|
|
|
|
|
- [ ] 已同步检查是否需要补证据文档
|
|
|
|
|
|
|
|
|
|
|
|
## 3. 不能夸大的结论
|
|
|
|
|
|
|
|
|
|
|
|
满足本清单,不等于自动满足以下结论:
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 完整 OS 级自动化已闭环
|
|
|
|
|
|
- [ ] 真实第三方 OAuth live 验证已闭环
|
|
|
|
|
|
- [ ] 外部 Secrets/KMS 已闭环
|
|
|
|
|
|
- [ ] 多环境 CI/CD 密钥分发已闭环
|
|
|
|
|
|
- [ ] 跨历史版本 schema downgrade 回滚证据已闭环
|
|
|
|
|
|
|
|
|
|
|
|
如果上述材料未齐备,必须在发布说明中明确列为剩余缺口。
|
|
|
|
|
|
|
|
|
|
|
|
## 4. 当前项目的主验收路径
|
|
|
|
|
|
|
|
|
|
|
|
当前受支持的真实浏览器主验收路径:
|
|
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
cd D:\project\frontend\admin
|
|
|
|
|
|
npm.cmd run e2e:full:win
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
当前可诚实表述的边界:
|
|
|
|
|
|
|
|
|
|
|
|
- 已完成浏览器级真实 E2E 收口
|
|
|
|
|
|
- 未完成完整 OS 级自动化收口
|
|
|
|
|
|
|
|
|
|
|
|
## 5. 发布后 30 分钟内检查
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 核心登录/登出链路正常
|
|
|
|
|
|
- [ ] 后台主导航正常
|
|
|
|
|
|
- [ ] 关键日志无新增异常
|
|
|
|
|
|
- [ ] 无异常弹窗、popup、page error、401 回归
|
|
|
|
|
|
- [ ] 健康检查正常:
|
|
|
|
|
|
- `GET /health`
|
|
|
|
|
|
- `GET /health/live`
|
|
|
|
|
|
- `GET /health/ready`
|
2026-04-11 10:41:08 +08:00
|
|
|
|
|
|
|
|
|
|
## 6. 2026-04-10 多轮 Review 补充检查项
|
|
|
|
|
|
|
|
|
|
|
|
### 6.1 RBAC / 管理员治理改动
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 涉及 `GetUserRoles`、`AssignRoles`、`CreateAdmin`、`DeleteAdmin`、角色表单或管理员页的改动时,已验证越权读取失败、越权修改失败。
|
|
|
|
|
|
- [ ] 已验证不可自删管理员、不可删除最后一个管理员、不可把系统带入无管理员状态。
|
|
|
|
|
|
- [ ] 已验证角色赋权、管理员创建、管理员删除具备事务性;若失败,数据库状态可回滚到操作前。
|
|
|
|
|
|
- [ ] 已验证未引入绕过 bootstrap 或 service 校验链路的硬编码角色 ID 或默认角色假设。
|
|
|
|
|
|
|
|
|
|
|
|
### 6.2 主入口与测试洁净度
|
|
|
|
|
|
|
|
|
|
|
|
- [ ] 文档声明的主入口命令本身已跑通:`go test ./... -count=1`、`cd frontend/admin && npm.cmd run e2e:full:win`。
|
|
|
|
|
|
- [ ] 若包装脚本、临时缓存、工作目录切换或环境注入失败,已按真实失败处理,而不是拿局部命令绿灯代替。
|
|
|
|
|
|
- [ ] `cd frontend/admin && npm.cmd run test:run` 与 `cd frontend/admin && npm.cmd run test:coverage` 运行后,无 `window.alert`、`window.confirm`、`window.prompt`、`window.open` 调用和 jsdom `Not implemented` 噪声。
|
|
|
|
|
|
- [ ] 如本轮改动把 stub、`not implemented` 或 mock 接口切换为 live 实现,已补充负向权限测试、边界条件测试、失败回滚测试。
|