docs(governance): record issue 611 R3 verification

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
This commit is contained in:
XiaoSeS 2026-07-30 17:32:37 +08:00
parent 433f3bb20b
commit dd6013c48c

View file

@ -4,8 +4,9 @@
- 状态:本地验证及 `big-main` 远端验证均已通过
- 基线:`origin/main@6817d98007c7890c1a8ecb3e822272287bb37a05`
- 工作分支:`fix/issue-611-child-fks`
- 修复提交:`e7a23b434bc7be58df6e541c821853fb8a5fab24`
- 已测试的 `big-main` 合并提交:`43f6d1671949d279ab05720fcddd20a25f0c2607`
- 修复提交:`41704e151e0152cdc7688e5b5baec1df75b02dd7`
- 提交身份:`XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>`
- 已测试的 `big-main` 合并提交:`4bf7d52118a43735240a9be6241d04531bd69cbc`
## 一、判断结论
@ -76,13 +77,18 @@ DELETE /api/web/skills/global/issue-611-repro/versions/1.0.0
| 2026-07-30 15:0216:06 | 实现修复并执行单元、集成、PostgreSQL、前端和 staging 验证 | 功能、数据完整性和并发场景通过 |
| 2026-07-30 16:06 | 执行后端回归 | 排除已知污染类后 659 项通过、1 项跳过;被排除类单独 9/9 通过 |
| 2026-07-30 16:08 | 删除本地测试容器、网络、镜像、数据和 staging 临时覆盖 | 清理完成 |
| 2026-07-30 16:16 | 提交并推送工作分支 | 修复提交 `e7a23b43` |
| 2026-07-30 16:16 | 提交并推送工作分支 | 修复提交 `e7a23b43` |
| 2026-07-30 16:17 | 合入最新 `origin/big-main` 并普通推送 | 合并提交 `43f6d1671949d279ab05720fcddd20a25f0c2607` |
| 2026-07-30 16:18 | 从该 `big-main` worktree 执行 Java 21 干净构建 | 8 个 Maven 模块构建成功 |
| 2026-07-30 16:1816:38 | 构建首张测试镜像并执行远端矩阵 | 功能矩阵 56/56 通过,但复核时发现 OCI revision 的完整 SHA 后缀记录错误,因此不作为最终证据 |
| 2026-07-30 16:4416:49 | 使用真实 full SHA 重建 R2 镜像、传输到远端、创建全新隔离栈并重新执行全部场景 | 最终 56/56 通过 |
| 2026-07-30 16:49 | 固化 R2 镜像、脚本、报告哈希及健康状态 | 镜像 revision 与实际 `big-main` commit 完全一致 |
| 2026-07-30 16:50 | 删除 R2 测试容器、网络、卷、镜像、脚本和日志 | 28081 端口关闭;原 8080 服务仍为 `UP` |
| 2026-07-30 17:18 | 将两个 PR 提交重写为 GitHub 账号 `XiaoSeS`,补充 `Signed-off-by` 并使用带精确旧 SHA 的 `force-with-lease` 推送 | 文件树与重写前完全一致;新修复提交为 `41704e15`DCO 通过 |
| 2026-07-30 17:19 | 将重写后的 PR 提交重新纳入 `big-main` 并普通推送 | 新合并提交为 `4bf7d52118a43735240a9be6241d04531bd69cbc`,相对前一 `big-main` 文件树无变化 |
| 2026-07-30 17:20 | 从新 `big-main` 提交执行 Java 21 干净构建并构建 R3 测试镜像 | 8 个 Maven 模块构建成功OCI revision 与完整提交 SHA 一致 |
| 2026-07-30 17:2317:28 | 将 R3 镜像传输到远端测试机,创建全新隔离栈并执行原 56 项矩阵 | PostgreSQL 16.14 上 56/56 通过 |
| 2026-07-30 17:29 | 固化 R3 证据哈希并删除远端测试资源 | 28081 端口关闭;原 8080 服务及 `v0.2.15` 容器保持健康 |
远端传输期间SFTP 曾停在 0 字节。确认测试尚未开始、数据库中没有测试数据后,仅终止了持有
测试脚本文件的残留 `sftp-server`/`dd` 进程,改用 SSH 命令通道传输,并在执行前校验
@ -139,20 +145,37 @@ SHA-256。没有停止或修改远端既有 SkillHub 服务。
- Docker Compose`v5.1.1`
- PostgreSQL`16.14`
- Redis`redis:7-alpine`
- 已测试提交:`43f6d1671949d279ab05720fcddd20a25f0c2607`
- 最终镜像:`skillhub-server:issue-611-big-main-43f6d167-r2`
- 已测试提交:`4bf7d52118a43735240a9be6241d04531bd69cbc`
- 最终镜像:`skillhub-server:issue-611-big-main-4bf7d521-r3`
- 最终镜像 ID
`sha256:a71fa5d0aad0e0d6ecc65e33c29ec6b844d7fecdeec0c83e9e82e27b388f3899`
- OCI revision`43f6d1671949d279ab05720fcddd20a25f0c2607`
`sha256:3453a2b21b05d157c7955a2e00c0d90eb771a95c82ddb5490f008a008138de2e`
- OCI revision`4bf7d52118a43735240a9be6241d04531bd69cbc`
- 构建 JAR SHA-256
`165f9d5a522ef4ec8911c1d7896306895ecad4cba3ed2ef633a8883982ff5df7`
`4b4a374506cd6ddfd611d10b738e11d08fb94d4238e836781ffd757c03e86e39`
- 测试脚本 SHA-256
`455cc712375aa299d3d04bce0c61eafaaf09355faefa303b67ca72e5036fcd76`
- 最终原始测试输出 SHA-256
`801f3301acc1a7f12e0a57301791705c9c5a320eae45931b9fcf71c28a617153`
`10c2b26a98d3b52cee6175d03897788ba2bc1f9b3598054ef66cecea79d9e897`
- 隔离 API`127.0.0.1:28081`
测试部署使用独立容器名、网络、PostgreSQL 数据卷、对象存储卷和端口,不替换远端既有运行环境。
R3 是修正提交身份和 DCO 后的最终验证制品;其完整测试矩阵与 R2 相同,测试脚本哈希也保持一致。
### 并发测试隔离说明
本次 R3 使用 `skillhub-611-r3-4bf7d521-*` 作为资源前缀,并在创建资源前检查容器名、网络、
数据卷和 `127.0.0.1:28081` 是否已占用。发生冲突时测试会退出,不会接管或删除已有资源。
测试前后均确认远端既有 `ghcr.io/iflytek/skillhub-server:v0.2.15` 容器在 8080 端口保持
`running``healthy``{"status":"UP"}`
固定的 28081 端口只能避免破坏,不能支持多个 Issue 同时运行。后续远端验证需要采用以下并发规则:
- 每次测试生成包含 Issue、精确提交和随机后缀的唯一 run ID。
- 由 Docker 自动分配仅绑定回环地址的临时端口,启动后读取实际端口传给测试脚本。
- 容器、网络、数据卷、镜像和临时文件全部携带 run ID清理只按该 run 精确执行。
- 禁止在共享测试机执行 `docker system prune`、宽泛名称匹配或未指定项目名的全局清理。
- `big-main` 更新必须先 fetch 并使用普通 push远端头变化时重新合并并生成新的待测 SHA。
- 测试报告必须记录精确的 `big-main` SHA、镜像 ID、OCI revision、动态端口和测试输出哈希。
### 测试矩阵