feat(chv-guest): M4 Chromium 单独钉死 + /app 收紧为最小集
- Chromium 钉死:CHROMIUM_HEADLESS_SHELL_REV(纯数字修订号) 设即钉死,buildinfo.py 校验读回的 ms-playwright 缓存目录名 须恰好是该修订号,否则构建失败;generate/check 的 --verify 也复核;未设时只记录、构建输出明说未钉死,BUILDINFO 记 null - /app 最小集:build.sh 不再把整个 $REPO_DIR/cloud/ 拷进客机, 只拷 host.py(只用标准库,不依赖 cloud/);REPO_DIR 预检 不再要求 cloud/ 存在 - generate_lockfile.py 只读 BUILDINFO.versions 一事已在 to10 轨 改写,本棒以合成 BUILDINFO 干跑复核(假版本 9.9.9 进 lockfile, 宿主 git 1:2.43.0 未混入)并补钉死复核;真实 lockfile 产出 仍待 V-9 真机构建,不编造版本号
This commit is contained in:
1 parent
c39715659e
commit
2ad29eeb1f
5 files changed
+99
-21
No files matched your search
@@ -1,12 +1,13 @@
|
||||
#!/usr/bin/env python3
|
||||
"""校验已构建镜像的 BUILDINFO 供应链清单(事后 lockfile 检查)。
|
||||
|
||||
事前 apt/pip 精确 lockfile 无法在本轨生成:apt 版本在构建
|
||||
宿主上解析、pip 版本在客机里解析,没有构建宿主就编不出
|
||||
版本号——本脚本绝不编造。构建时 build.sh 已从客机读回
|
||||
dpkg + pip freeze 写进 BUILDINFO.versions(事后 lockfile),
|
||||
本脚本校验它:versions 非空、每条有版本、contents 全覆盖、
|
||||
tag 与预期一致、可选的冻结清单(--frozen JSON,形如
|
||||
生成端见 generate_lockfile.py(读 BUILDINFO.versions 生成
|
||||
lockfile.json,版本唯一来源是 build.sh 从客机读回的
|
||||
dpkg/pip freeze + chromium 目录名 + codex/repo_commit/gt
|
||||
声明字段,绝不查构建宿主现场、绝不编造版本号)。
|
||||
本脚本校验 BUILDINFO:versions 非空、每条有版本、contents
|
||||
全覆盖、tag 与预期一致、钉死的 Chromium 修订号一致、
|
||||
可选的冻结清单(--frozen JSON,形如
|
||||
{"dpkg": ["pkg version", ...]})双向比对,漂移即退出非 0。
|
||||
|
||||
用法:
|
||||
@@ -111,6 +112,16 @@ def main(argv):
|
||||
if missing:
|
||||
print("contents 未覆盖:%s" % sorted(missing), file=sys.stderr)
|
||||
return 1
|
||||
# feat-chv-closeup(M4):钉死的 Chromium 修订号须与读回
|
||||
# 的缓存目录名一致;未钉(pinned_rev 为空)时不校验。
|
||||
pinned = data.get("chromium_pinned_rev")
|
||||
if pinned:
|
||||
expected = "chromium_headless_shell-%s" % pinned
|
||||
if expected not in (versions.get("chromium") or []):
|
||||
print("Chromium 修订号与钉死值不符:读回 %s,钉死 %s"
|
||||
% (versions.get("chromium"), expected),
|
||||
file=sys.stderr)
|
||||
return 1
|
||||
if frozen_path:
|
||||
with open(frozen_path) as fh:
|
||||
frozen = json.load(fh)
|
||||
|
||||
Reference in new issue
Block a user