# PR #6600 完整报告

- 仓库：`verl-project/verl`
- 标题：[ci] fix: Modify the log path of npu nightly ci
- 合并时间：2026-06-06 14:44
- 原文链接：http://prhub.com.cn/verl-project/verl/pull/6600

---

# 执行摘要

- 一句话：统一 NPU 夜间 CI 脚本日志路径为动态目录
- 推荐动作：该 PR 属于 CI 基础设施的微小改进，逻辑简单，不值得深入精读。但其中“基于脚本名自动生成路径”的模式可作为团队 CI 脚本编写的规范，值得在其他 CI 场景中推广。

# 功能与动机

原有的日志路径在各脚本中硬编码，不便于维护和扩展。当新增或修改测试脚本时需要手动调整日志路径，容易出错。通过脚本名自动生成日志目录和文件名，减少人工干预，提高 CI 的健壮性。

# 实现拆解

1. 在 5 个 shell 测试脚本头部添加 `SCRIPT_NAME="$(basename -- "${BASH_SOURCE[0]}" .sh)"`、`LOG_DIR=/root/.cache/nightly_log/$SCRIPT_NAME` 和 `mkdir -p $LOG_DIR` 三行，获取脚本名并创建对应日志目录。
2. 将各脚本末尾的 `tee` 重定向改为 `tee $LOG_DIR/$SCRIPT_NAME.log`，替代原来的硬编码路径（如 `/root/.cache/nightly_log/moonlight/dapo_moonlight16b_megatron_npu-$(date +%Y%m%d_%H%M).log`）或直接输出。
3. 在 `nightly_ascend.yml` 中，修改 PPO 检查步骤的 `cd` 目录和 `--log` 参数，与新生成的日志路径匹配。
4. 对于 `run_grpo_qwen3_30b_megatron_sglang_npu.sh`，原已使用动态目录但带时间戳，统一去掉时间戳，保持命名一致。
5. 所有脚本均为测试脚本，不涉及源码逻辑变更；工作流文件为 CI 配置变更。

关键文件：
- `tests/special_npu/nightly_ci_ascend/run_dapo_moonlight-16b_megatron_npu.sh`（模块 测试脚本；类别 test；类型 test-coverage）: 添加动态日志目录逻辑，替换硬编码路径，是典型变更之一
- `tests/special_npu/nightly_ci_ascend/run_grpo_qwen3_8b_mindspeedllm_npu.sh`（模块 测试脚本；类别 test；类型 test-coverage）: 同样添加动态日志目录逻辑，统一日志文件名
- `tests/special_npu/nightly_ci_ascend/run_gspo_qwen3_30b_megatron_npu.sh`（模块 测试脚本；类别 test；类型 test-coverage）: 添加动态日志目录逻辑，末尾添加 tee 重定向
- `tests/special_npu/nightly_ci_ascend/run_ppo_qwen3-8b_fsdp_npu.sh`（模块 测试脚本；类别 test；类型 test-coverage）: 添加动态日志目录逻辑，替换硬编码路径
- `tests/special_npu/nightly_ci_ascend/run_grpo_qwen3_30b_megatron_sglang_npu.sh`（模块 测试脚本；类别 test；类型 test-coverage）: 统一日志文件名，去掉时间戳，保持与脚本名一致
- `.github/workflows/nightly_ascend.yml`（模块 CI 工作流；类别 infra；类型 infrastructure）: 同步更新日志检查步骤的目录和文件名，匹配新的路径

关键符号：未识别


# 评论区精华

1. **gemini-code-assist 自动 review**：建议将 `python` 改为 `python3` 并在 `cd` 后添加 `|| exit` 错误处理。但该建议可能针对另一个文件，未见人工确认。
2. **ChibiQuest 提问**：在 `.github/workflows/e2e_ascend.yml` 的 diff 中询问“这些为什么要注释掉呢？”，指向部分 job 名称被注释或修改。但此问题未得到回复，可能属于调研性质。

- gemini-code-assist 自动 review 建议 (other): 未被采纳或确认，可能属于自动评论的误判。
- ChibiQuest 询问注释原因 (question): 无回复，可能为调研性质，后续有相应调整。

# 风险与影响

- 风险：风险极低。变更仅涉及测试脚本的日志路径和 CI 工作流的检查步骤，不改变任何训练逻辑或算法。主要风险为日志路径与检查脚本不匹配导致 CI 误报，但 PR 已同步更新工作流中的路径，测试后应可正常工作。如果某些脚本的 `$LOG_DIR` 目录创建失败（如权限问题），可能会丢失日志，但脚本中已有 `mkdir -p` 且以 root 运行概率低。
- 影响：对用户无直接影响。对团队的影响为：夜间 CI 的日志将按脚本名称集中存放于 `/root/.cache/nightly_log/` 下，便于检索和对比；新添加测试脚本时只需遵循同样的模式，无需手动指定日志路径。影响范围限定在 NPU 夜间 CI 流程。
- 风险标记：日志路径变更可能导致检查失败

# 关联脉络

- PR #6649 [ci] fix: several CI syntax errors: 同为 CI 基础设施修复，涉及工作流语法调整，与本次变更有一定关联。
- PR #6668 [ci, hardware] feat: add AMD ROCm (MI300) e2e_ppo_trainer workflow: 新增 CI 工作流，与 NPU 夜间 CI 同属 CI 扩展和维护。