# PR #26037 完整报告

- 仓库：`sgl-project/sglang`
- 标题：ci: self-heal $GITHUB_PATH/$GITHUB_ENV writes
- 合并时间：2026-05-22 12:28
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/26037

---

# 执行摘要

- 一句话：CI 脚本自愈 Runner 文件命令目录丢失
- 推荐动作：建议合并。修复了已知的间歇性 CI 故障，改动小而安全。

# 功能与动机

Fixes intermittent B200 CI failure: install_rustup.sh crashed when the runner's _runner_file_commands/add_path_<uuid> file went missing mid-job.

# 实现拆解

1. **scripts/ci/utils/install_rustup.sh**: 在写入 $GITHUB_PATH 之前，先使用 `mkdir -p "$(dirname "$GITHUB_PATH")" 2>/dev/null || true` 重建父目录，然后以 `|| true` 容忍写入失败，确保 PATH 传播工作。
2. **scripts/ci/cuda/ci_install_dependency.sh**: 对 GITHUB_ENV 和 GITHUB_PATH 写入均增加相同的自愈逻辑：先 `mkdir -p` 父目录，再 `|| true` 容忍失败。

关键文件：
- `scripts/ci/utils/install_rustup.sh`（模块 CI 脚本；类别 infra；类型 infrastructure）: 核心修复文件：添加自愈逻辑，防止因 _runner_file_commands 目录缺失导致脚本崩溃。
- `scripts/ci/cuda/ci_install_dependency.sh`（模块 CI 脚本；类别 infra；类型 infrastructure）: 同步修复：对 GITHUB_ENV 和 GITHUB_PATH 写入增加相同自愈逻辑。

关键符号：未识别


# 评论区精华

无 review 评论。

- 暂无高价值评论线程

# 风险与影响

- 风险：低风险。仅修改 CI 脚本中的文件写入前防御，不影响核心逻辑。如果父目录重建失败，写入命令被忽略，环境变量可能无法正确设置，但不会导致崩溃。
- 影响：影响范围仅限于 CI 流程中的两个 shell 脚本，减少因 runner 文件目录丢失导致的 CI 失败，提升 CI 稳定性。
- 风险标记：CI 稳定性修复

# 关联脉络

- 暂无明显关联 PR