Prhub

#21579 [CI] Replace upload/download-artifact with job outputs in release-docker workflow

原始 PR 作者 Kangyan-Zhou 合并时间 2026-03-28 13:12 文件变更 1 提交数 1 评论 1 代码增减 +18 / -34

执行摘要

使用 job outputs 替换 upload/download-artifact,修复 CI 工作流中的栈溢出错误,简化 docker 镜像发布。

根据PR body描述,upload-artifact@v4/v6存在持久性错误,导致“digest upload step”失败(如链接的action run所示);而job outputs是传递短字符串的更简单可靠机制。

建议工程师阅读此PR以了解GitHub Actions job outputs的使用场景,特别是在传递短数据时替代artifact的实践,适合CI优化参考。

讨论亮点

此PR没有review评论,直接合并,表明变更被认可为低风险改进,无需额外讨论。

实现拆解

修改文件.github/workflows/release-docker.yml:

  1. 在publish-x86和publish-arm64作业中添加outputs字段,定义digest-cu129和digest-cu130输出,引用build步骤的输出。
  2. 修改build步骤(如build-cu129和build-cu130),添加id并将digest通过echo输出到$GITHUB_OUTPUT。
  3. 移除upload-artifact和download-artifact相关步骤及其文件操作。
文件 模块 状态 重要度
.github/workflows/release-docker.yml CI/CD workflows modified 7.0

关键符号

build-cu129 build-cu130

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险较低:

  1. 输出格式变更:job outputs依赖正确的echo格式(如“digest=${DIGEST}”),若格式错误可能导致create-manifests作业接收不到digest。
  2. CI步骤依赖:移除artifact可能影响其他工具依赖,但本工作流中无此类依赖;验证需通过测试计划确保digest正确传递。

对最终用户无直接影响,但提升了CI/CD系统的可靠性,减少了docker镜像发布流程中的错误;对团队而言,简化了workflow配置,便于维护和减少CI失败。

输出格式变更 CI 步骤依赖

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论