执行摘要
本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-x86和publish-arm64作业中添加outputs字段,定义digest-cu129和digest-cu130输出,例如:
yaml
outputs:
digest-cu129: ${{ steps.build-cu129.outputs.digest }}
- 修改
build-cu129和build-cu130步骤,添加id并通过$GITHUB_OUTPUT输出digest,例如:
bash
echo "digest=${DIGEST}" >> $GITHUB_OUTPUT
- 移除
upload-artifact和download-artifact相关步骤及其文件操作,减少了复杂性。
评论区精华
此PR没有review讨论,直接合并,表明变更被认可为低风险改进,无需额外技术争议。
风险与影响
风险:需确保job outputs正确传递,否则后续create-manifests作业可能失败;但PR中已包含测试计划验证。影响:对用户无感,但提升了CI效率和维护性,减少了发布中断的可能性。
关联脉络
与PR #21563“拆分runtime docker发布workflow”相关,两者都优化了docker发布CI流程,展示了团队对CI基础设施的持续改进趋势。
参与讨论