Prhub

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

sgl-project/sglang · 作者 Kangyan-Zhou · 合并时间 2026-03-28 13:12

分析状态 已生成
文件变更 1提交数 1 · 评论 1
代码增减 +18 / -34
ci bugfix

执行摘要

使用 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

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

关键符号

build-cu129 build-cu130

评论区精华

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

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

风险与影响

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

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

输出格式变更 CI 步骤依赖

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

本PR通过将GitHub Actions工作流中的upload/download-artifact替换为job outputs,修复了docker镜像发布流程中的栈溢出错误,提高了CI系统的可靠性和简洁性。

功能与动机

原始workflow使用upload-artifact动作上传镜像摘要,但该动作存在“Maximum call stack size exceeded”错误,导致发布失败。job outputs机制更适合传递短字符串,简化了流程,如PR body所述:“Fixes persistent 'Maximum call stack size exceeded' error”。

实现拆解

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

  • publish-x86publish-arm64作业中添加outputs字段,定义digest-cu129digest-cu130输出,例如:
    yaml outputs: digest-cu129: ${{ steps.build-cu129.outputs.digest }}
  • 修改build-cu129build-cu130步骤,添加id并通过$GITHUB_OUTPUT输出digest,例如:
    bash echo "digest=${DIGEST}" >> $GITHUB_OUTPUT
  • 移除upload-artifactdownload-artifact相关步骤及其文件操作,减少了复杂性。

评论区精华

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

风险与影响

风险:需确保job outputs正确传递,否则后续create-manifests作业可能失败;但PR中已包含测试计划验证。影响:对用户无感,但提升了CI效率和维护性,减少了发布中断的可能性。

关联脉络

与PR #21563“拆分runtime docker发布workflow”相关,两者都优化了docker发布CI流程,展示了团队对CI基础设施的持续改进趋势。

参与讨论