# PR #39053 完整报告

- 仓库：`vllm-project/vllm`
- 标题：[ROCm][CI] Fix test repo-root assumptions
- 合并时间：2026-04-07 13:36
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/39053

---

# 执行摘要

- 一句话：修复 ROCm CI 环境中集成测试脚本因缺少 Git 元数据导致的仓库根目录查找失败问题。
- 推荐动作：该 PR 变更直接且必要，值得快速合并。对于关注 CI 基础设施和跨平台测试兼容性的工程师，可关注这种基于脚本位置解析仓库根目录的模式，作为处理无 Git 元数据环境的参考方案。

# 功能与动机

根据 PR body 描述，ROCm CI 镜像将工作空间复制到 `/vllm-workspace`，但运行时不需要活的 `.git` 检出，导致多个集成测试脚本使用 `git rev-parse --show-toplevel` 查找仓库根目录时失败。需要移除这种运行时假设，确保测试在 CI 环境中可靠运行。

# 实现拆解

修改了 7 个集成测试 shell 脚本，统一采用以下模式：1. 使用 `SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"` 获取脚本绝对路径；2. 通过 `GIT_ROOT="${GIT_ROOT:-$(cd -- "${SCRIPT_DIR}/../../../.." && pwd -P)}"` 设置仓库根目录，其中 `${GIT_ROOT:-...}` 允许环境变量覆盖；3. 移除原有的 `GIT_ROOT=$(git rev-parse --show-toplevel)` 调用。所有脚本都位于 `tests/v1/kv_connector/nixl_integration/` 或 `tests/v1/ec_connector/integration/` 目录下，相对路径 `../../../..` 能正确指向仓库根目录。

关键文件：
- `tests/v1/kv_connector/nixl_integration/run_accuracy_test.sh`（模块 kv-connector）: 修改了 kv-connector 准确性测试脚本，是核心集成测试之一，且添加了详细的注释说明 ROCm CI 环境问题。
- `tests/v1/ec_connector/integration/run_epd_correctness_test.sh`（模块 ec_connector）: 修改了 ec_connector 正确性测试脚本，覆盖另一个关键集成测试模块。
- `tests/v1/kv_connector/nixl_integration/run_tpu_disagg_accuracy_test.sh`（模块 kv-connector）: 修改了 TPU 解聚准确性测试脚本，涉及多平台测试支持。

关键符号：未识别


# 评论区精华

review 中仅有少量正面反馈，无争议讨论。Bortlesboat 指出变更模式在所有 7 个脚本中保持一致，`${GIT_ROOT:-...}` 回退机制设计巧妙，既允许 CI 覆盖又支持本地开箱即用，且 `cd -- && pwd -P` 方法避免了符号链接问题。tjtanaa 和 gemini-code-assist[bot] 均表示认可。

- 路径解析模式的一致性与设计优点 (design): 设计得到认可，无修改建议。

# 风险与影响

- 风险：技术风险较低：1. 路径解析逻辑简单，回归风险小；2. 使用 `pwd -P` 解析物理路径，避免符号链接问题；3. 保留 `${GIT_ROOT:-...}` 允许环境变量覆盖，不影响现有 CI 配置。潜在风险：相对路径 `../../../..` 依赖于脚本位置固定，若未来目录结构调整可能失效，但当前所有脚本都在相同深度目录下，风险可控。
- 影响：影响范围限于 ROCm CI 环境中的集成测试执行可靠性，对用户功能无直接影响。确保 kv-connector 和 ec_connector 相关集成测试在 ROCm CI 中能正常运行，提升 CI 稳定性。对团队而言，减少了因环境差异导致的测试失败，维护成本降低。
- 风险标记：路径依赖风险

# 关联脉络

- PR #37636 [KVConnector] Support 3FS KVConnector: 同属 kv-connector 模块，该 PR 引入了 3FS KVConnector 支持，而当前 PR 修复其集成测试的 CI 环境问题。
- PR #38301 [KVConnector]: prioritize external connector over internal registry: 同属 kv-connector 模块的 bugfix，当前 PR 修复的测试脚本可能用于验证此类功能。