# PR #2773 完整报告

- 仓库：`radixark/miles`
- 标题：ci: default a file run to the PR's own image
- 合并时间：2026-08-27 08:51
- 原文链接：http://prhub.com.cn/radixark/miles/pull/2773

---

# 执行摘要

- 一句话：修复 /rerun-test 默认镜像逻辑
- 推荐动作：建议精读该 PR，它展示了 CI 镜像选择逻辑的优化思路，对维护 CI 流程有一定参考价值。值得关注的是如何通过检查镜像是否存在来优雅回退，以及如何通过认证避免限流问题。

# 功能与动机

PR 中提到原始问题：当 PR body 未携带 `ci-image-tag` 时，`/rerun-test` 总使用 `radixark/miles:dev` 镜像，即使该 PR 已构建了 `pr-<number>` 镜像。这在依赖变更的 PR 上导致无关的错误失败，例如 sglang 版本升级后 rerun 因镜像中 sglang-kernel 版本过低而在测试前崩溃。

# 实现拆解

1. **登录 Docker Hub**：在 `.github/workflows/run-ci-file.yml` 中，当 `ci_image_tag` 为空时，使用 `docker/login-action@v3` 进行认证，避免匿名拉取触发 Docker Hub 速率限制，防止镜像检查误判。
2. **动态选择镜像标签**：新增步骤 `Pick the image tag when the PR body did not pin one`，通过 `docker buildx imagetools inspect` 检查 `radixark/miles:pr-${PULL_NUMBER}` 是否存在，若存在则使用该标签，否则回退到 `dev`。
3. **传递所选标签**：将解析出的标签赋值给 `CI_IMAGE_TAG` 环境变量，供后续执行计划步骤使用。
4. **文档同步**：更新 `docs/ci/01-label.md` 以反映新逻辑。

关键文件：
- `.github/workflows/run-ci-file.yml`（模块 CI 工作流；类别 infra；类型 infrastructure）: 核心变更文件，新增镜像选择逻辑与 Docker Hub 认证步骤。
- `docs/ci/01-label.md`（模块 CI 文档；类别 docs；类型 documentation）: 同步更新 CI 文档，说明镜像选择的新行为。

关键符号：未识别


# 评论区精华

无 review 评论，`guapisolo` 直接批准。`claude[bot]` 仅发出手动 review 提示，无实质讨论。

- 暂无高价值评论线程

# 风险与影响

- 风险：此变更仅影响 CI 基础设施，风险较低。潜在风险包括：额外 Docker Hub 登录可能失败（但会跳过，不影响主要逻辑）；`docker buildx imagetools inspect` 命令在某些环境中可能不可用，但脚本已设置 `set -euo pipefail`，若失败会退出并触发错误，可能会掩盖真实问题。
- 影响：影响范围限于 CI 流程，特别是 `run-ci-file.yml` 工作流。对开发者而言，`/rerun-test` 现在会使用 PR 自己的镜像，减少因镜像不匹配导致的伪失败，提升 CI 调试效率。对团队而言，减少误报可提高 CI 可靠性。
- 风险标记：CI 基础设施变更 , 依赖 Docker Hub 可用性

# 关联脉络

- PR #2720 fix(ci): grant pull-requests write to comment-gateway feedback jobs: 同属 CI 命令 / 工作流优化范畴，修改了相似的 CI 工作流文件。
- PR #2718 fix(ci): App-free rerun commands at contributor tier, with fork /rerun-test under label approval: 同样涉及 /rerun-test 机制，与本次镜像选择逻辑相关。