ci(retag/deploy): 增加镜像内容校验,防止静默部署旧/损坏镜像 #1569
Reference in New Issue
Block a user
Delete Branch "ci/image-content-verification"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
目标
防止 retag 步骤静默复用旧镜像后部署了损坏/过期代码。
变更
retag_skipped_image.sh 加固
ci_staging_deploy.sh 加固
不改动
代码审查结果 - PR #1569
⚠️ 问题(2个需要修改)
deploy-manifest.json中最后一个元素"web_layers"后带有逗号,这在 JSON 标准中是非法的。如果后续步骤使用jq或其他 JSON 解析器读取该文件,将会解析失败。sed 's/.*: *"\(.*\)".*/\1/'提取 ID 时,如果上一次的 manifest 是压缩的单行 JSON(例如{"api_id": "sha256:abc", "web_id": "sha256:def"}),该正则会贪婪匹配,提取出abc", "web_id": "sha256:def",导致 ID 对比逻辑失效,每次都会误判为 "changed"。💡 建议(1个可选)
date -d是 GNU date 特有语法,在 macOS 等环境会报错。虽然 CI 环境通常是 Linux,但为了脚本健壮性,建议检查date版本或使用兼容性更好的处理方式(如 Python 脚本处理时间)。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能无明显问题
🤖 由 AI 代码审查机器人自动生成 | 2026-08-31 04:06:59 | 模型:
🚀 预览环境已部署
🗑️ 预览环境已清理
PR #1569 已关闭或合并,对应的预览环境已被清理。