Prhub

#42355 [CI] Move DockerHub and PyPI publish steps to end of release pipeline

原始 PR 作者 khluu 合并时间 2026-05-12 17:17 文件变更 1 提交数 1 评论 3 代码增减 +57 / -53

执行摘要

调整发布流水线顺序,构建完成后统一发布

PR body 明确指出:所有构建步骤(包括 ROCm)必须完成后再进行发布,以防止发布操作与正在进行的构建产生竞态。

该 PR 改动安全且必要,建议合并。后续可单独处理 gemini-code-assist 提出的 nightlty 条件过滤建议,进一步提升 nightly 自动化程度。

讨论亮点
  • Harry-Chen 建议触发 dry-run 验证顺序有效性;khluu 创建了 Buildkite job 并确认步骤已正确移到最后。
  • gemini-code-assist[bot] 指出 Publish wheels 组缺少 if: build.env("NIGHTLY") != "1",可能导致 nightly 构建中出现手动确认块,建议补充。该建议未在本次 PR 中处理。

实现拆解

  1. 从原流水线中间删除 Publish release images to DockerHub 块(block + label)和 Publish wheels 组。
  2. 在流水线末尾、所有构建和 ROCm 步骤之后重新插入上述发布步骤。
  3. 保持所有 depends_on 引用不变(指向原有的 step ID)。
  4. 添加注释 Publish to DockerHub and PyPI (at the end so all builds complete first) 明确意图。
文件 模块 状态 重要度
.buildkite/release-pipeline.yaml CI 配置 modified 5.29

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

评论区精华

Dry-run 验证发布流水线顺序 测试

Harry-Chen 建议触发 dry-run 验证步骤顺序是否正确;khluu 创建了 Buildkite job 并确认步骤已移到最后。

结论:验证通过,顺序正确。 · 已解决

为 Publish wheels 组添加 nightly 条件 设计

gemini-code-assist[bot] 指出 Publish wheels 组缺少 if: build.env("NIGHTLY") != "1",可能导致 nightly 构建中出现手动确认块,建议补充。

结论:未在本次 PR 中处理,建议后续单独修复。 · unresolved

风险与影响

  • 依赖解析风险:虽然 depends_on 引用保持不变,但 YAML 流水线中步骤的物理顺序改变仍可能影响 Buildkite 的依赖图解析,需通过 dry-run 验证。
  • nightly 流程干扰Publish wheels 组未添加 nightlty 条件过滤,自动化 nightly 构建可能被手动确认块阻塞。
  • 无脚本逻辑修改:发布脚本本身无变更,因此发布逻辑本身风险低。

仅影响 release-pipeline.yaml 的执行顺序,对开发者日常开发、用户推理服务无直接影响。改进发布流水线的可靠性和一致性,避免构建未完成时错误发布。

缺少 nightly 条件过滤 YAML 步骤顺序影响依赖图 发布流程变动需 dry-run 验证

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论