Skip to content

fix(build): unify full dev builds and immutable receipts - #26

Merged
opendev9 merged 3 commits into
devfrom
fix/storage-build-20261020
Oct 20, 2026
Merged

opendev9 merged 3 commits into
devfrom
fix/storage-build-20261020

Conversation

@opendev9

@opendev9 opendev9 commented Oct 20, 2026 •

Copy link
Copy Markdown

当前 dev 已是完整 CloudFile V2 扩展树,旧 CE14+白名单组装不能包含它的 C/Go/Hub 依赖。统一使用 release.yaml + cloudfile-build.sh 构建完整 Server/Hub,开工时从远端各解析一次三仓分支,后续只消费生成收据的 SHA。远端失败即停止。

基线:Docker a7e8c2b;开工时 Server 6bb3c42865ab4769c1aa84a15f9d5c435aa18553、Hub ee732e74ce02f184586e1313b489e2198dbc15fe。实际完整构建使用开工时远端 dev 和本 PR Docker 的收据结果。

变更:

  • 分支配置与锁定结果分离;release.json 从收据生成并忽略,不手改旧 SHA。
  • 按收据捕获来源、执行 C local_storage 与 Go objstore 专项、绑定已安装字节;镜像校验来源后记录本地 config digest及已有RepoDigests。
  • 缓存命中仍跑专项;损坏缓存先拒绝,Docker配方SHA进入dist键,防止旧字节重签。
  • 旧V2组装/独立DEV运行器/旧native构建及其dispatch工作流移入docs/history,原source-set SHA原样保留;旧路径仅兼容包装当前实现。
  • 完整编译和特权三层bind-mount只在workflow_dispatch,日常push/PR保持轻量。
  • T5逐项:67527ab的Web console文件检查仍需要并重实现;66fd077的存储专项移至当前入口;132e19a的旧pin/平行权限API不搬(当前Hub#37完成);b08b6bf旧源码差异说明归档;0b91ef3的按输入验证规则保留;ecedbc6由配置PR#25重实现;10f48b7 nginx已在dev,不重复移植。Server旧feature不合并;三仓feature均不更名,等待用户另批。

已完成验证:

python3 -m unittest discover -s tests -p test_build_receipt.py -q             # 7 / OK
python3 -m unittest discover -s tests -p test_source_manifest.py -q          # 7 / OK
python3 -m unittest discover -s tests -p test_package_provenance.py -q       # 8 / OK
python3 -m unittest discover -s tests -p test_current_package_stamp.py -q    # 2 / OK
python3 -m unittest discover -s tests -p test_current_build_policy.py -q     # 3 / OK
python3 -m unittest discover -s tests -p test_receipt_cache.py -q            # 4 / OK
bash tests/tools/test-build-cache-contract.sh                               # PASS
bash -n <changed current build scripts>                                    # PASS
git diff --check                                                          # PASS

完整Linux/arm64构建正在统一入口执行,完成前保持draft;日志与最终收据/digest将追加。

未覆盖:DEV真实数据库1407/63核对、旧库读写/历史/恢复/GC/fsck。用户已明确移至发布后验收;远程bb-dev设备当前未连接。不执行生产变更或分支归档。

完整构建补充结果(2026-10-20):

  • 当前入口完整 Linux/arm64 C/Go/Web 构建成功,日志 /private/tmp/cloudfile-storage-full-build.log。
  • 构建收据锁定 Server dev 366f5db742dbd8b8bf08add300b14068d9cfe193、Hub dev 9f801c5d8d7c04fccd3bf4bd2a1d6570743190f0、Docker 本 PR 5d8b0038c13f55b8dd2f5e5eaa6a610ece937a12(最新额外提交仅清理历史文件尾随空格,未改执行代码)。
  • C local_storage、Go objstore、特权 bind_mounts backend/repository/shard 全PASS;Server SHA 经 merge-base 证实包含31a51f3与6bb3c42。
  • 真实 seaf-server、GC、fsck repair、Server repair × 4种混用配置 = 16/16明确拒绝;--network none,产物只读,无任何既有数据库/数据卷。
  • 镜像 cloudfile/cloudfile:14.0.8-storage-test 成功;本地 image config digest sha256:5da0dd2b414d103e614c0a86064e17099d7de155100ca040dc0d1590d0fe8526。未推送,因此无 registry manifest digest。
  • 来源/测试命令/日志SHA256/镜像摘要均已写入真实 build-receipt.json,证据复制到 outputs/cloudfile-storage-closure-20261020/premerge/。

已发现并修复的验证失败:首次容器构建因宿主worktree元数据路径无效,在编译前失败;Git初始化改在/tmp执行后重跑成功。首轮轻量CI发现归档原文件1处尾随空格,清理后最新CI PASS。负向来源测试夹具曾误写相同SHA而未触发预期异常,改成不同SHA后31项测试全部通过;没有跳过失败。

Hub#38与配置#25完成后,将再锁定最终dev组合并复用工具链缓存完成最终收据。DEV现场验收与远端数据库实际版本仍为后续发布验证项目;当前远程设备未连接。

@opendev9
opendev9 marked this pull request as ready for review October 20, 2026 09:52
@opendev9
opendev9 merged commit 9449bf8 into dev Oct 20, 2026
1 check passed
@opendev9
opendev9 deleted the fix/storage-build-20261020 branch October 21, 2026 00:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant