test(release): 逐文件核对「发布包 == 打标签的树」(T-AND-018)

新增 build/check_tracked_release.py(纯标准库):对包内每个文件按路径决定比较基准 ——
app-release.apk 比工作树构建结果,其余比 git show <tag>:<路径>;内容不一致 / 多余 /
构建产物缺失都会列出并退出 1。已接入 accept-release.sh(第 0 步)与 package-release.sh 提示。

实测(已发布的 v0.2.2 资产重新下载后):
  包内 12 个文件:源码/文档 11(与 tag v0.2.2 比)+ 构建产物 1(APK 比工作树构建)
  ✓ 逐文件一致:0 处不一致 / 0 处多余 / 0 处缺失
同行产品级验收(版本元数据 0.2.2/202、native 体检、契约快照、验签)同时全绿。

踩坑:第一版把 BUILD_OUTPUTS 的键一律当目录前缀,而 APK 是单文件,拼出
app-release.apk/ 导致「工作树缺失」误报;现区分目录前缀与精确文件名。
This commit is contained in:
2026-09-18 03:10:35 +08:00
parent c0d0937023
commit 0ee95c46e0
5 changed files with 243 additions and 1 deletions
+2 -1
View File
@@ -99,5 +99,6 @@ echo "分发:上传 $NAME.zip 与 SHA256SUMS 两个资产;用户下载后"
echo " sha256sum -c SHA256SUMS && unzip $NAME.zip"
echo " 再 adb install -r $NAME/app-release.apk(Android 10+)"
echo ""
echo "下一步(文档 §7.5:每次发布都要有一条读产物本身的验收):"
echo "下一步(文档 §7.5 / §7.7:发布前必须做的验收,含逐文件核对):"
echo " python3 build/check_tracked_release.py $ZIP --tag v$VERSION"
echo " bash build/accept-release.sh $ZIP"