执行摘要
- 一句话:修复 release-docker-runtime CI 工作流,使用 job outputs 替代 artifact 上传下载,解决 Docker tag 缺失问题。
- 推荐动作:对于一般工程师,此 PR 变更简单,无需深入精读,但可作为了解 GitHub Actions job outputs 最佳实践的参考;对于 CI 维护者,值得关注以确保类似工作流的一致修复和配置一致性。
功能与动机
PR body 指出:'Fix missing runtime Docker tags for v0.5.10',关联 Issue #22378 报告了 v0.5.10 缺少 *-runtime Docker tags,修复是为了确保 runtime Docker 镜像能像之前版本一样正常发布。
实现拆解
主要修改 .github/workflows/release-docker-runtime.yml 文件:1. 在 publish-x86 和 publish-arm64 jobs 中添加 outputs 字段,定义 digest-cu129 和 digest-cu130 输出,从构建步骤的 $GITHUB_OUTPUT 获取;2. 移除 upload-artifact 步骤,不再将 digest 写入文件并上传;3. 在 create-manifests job 中移除 download-artifact 步骤,改为直接从上游 jobs 的 outputs 引用 digest 值。这简化了 digest 传递机制,避免了文件操作相关的错误。
关键文件:
.github/workflows/release-docker-runtime.yml(模块 CI/Infrastructure): 这是修改的唯一文件,负责发布 runtime Docker 镜像的 CI 工作流,变更影响了 digest 传递机制,直接关联到 Docker 标签生成成功与否。
关键符号:未识别
评论区精华
无 review 讨论,变更由作者直接提交并合并,基于先前 PR #21579 的成功经验,无争议或设计权衡。
风险与影响
- 风险:风险较低:1. 依赖 GitHub Actions job outputs 的稳定性,但这是官方推荐方式;2. 如果 outputs 定义或引用错误,可能导致 create-manifests job 失败,但变更基于已验证的 #21579;3. 无代码逻辑变更,主要风险在于 CI 配置的正确性,但变更简单直接。
- 影响:影响:1. 用户:确保 runtime Docker 镜像标签正确发布,便于用户使用特定版本镜像;2. 系统:CI 工作流更可靠,减少因 artifact 问题导致的发布失败,提升发布流程稳定性;3. 团队:简化维护,避免类似 #22378 的 issue 再次发生,影响范围限于 Docker 镜像发布流程。
- 风险标记:CI配置变更, 依赖外部服务
关联脉络
- PR #21579 [CI] Replace upload/download-artifact with job outputs in release-docker workflow: 本 PR 应用了与 #21579 相同的修复,将 job outputs 替代 artifact 的方法扩展到 release-docker-runtime 工作流,两者都是 CI 配置优化。
参与讨论