# PR #7176 完整报告

- 仓库：`verl-project/verl`
- 标题：[ci] fix: update Ascend nightly CI & docker
- 合并时间：2026-07-28 17:58
- 原文链接：http://prhub.com.cn/verl-project/verl/pull/7176

---

## 执行摘要
本 PR 修复了 Ascend 夜间 CI 和 Docker 构建失败的问题。主要调整了 `nightly_ascend.yml` 中的步骤顺序（将 `checkout` 提前），并为四个 Docker 构建工作流添加了缓存作用域（`scope`），防止并行构建时的缓存冲突。变更均为 CI 配置，无核心代码改动，风险极低。

## 功能与动机
根据 PR 描述，本 PR 旨在“修复 nightly CI 和 Docker 失败”。结合近期历史（如 #7148 也是修复 nightly CI），说明 Ascend 相关的 CI 流水线存在稳定性问题。需要调整以确保自动化测试和 Docker 镜像构建的可靠性。

## 实现拆解

1. **调整 `nightly_ascend.yml` 步骤顺序**：将 `Checkout verl-project/verl repo` 步骤从 `Install uv` 之后移到 `Install Ascend NPU driver` 之后、`Install uv` 之前。这一修改确保在安装 Python 依赖前代码已就绪，避免了因文件缺失导致的安装失败。
2. **为 Docker 构建添加缓存作用域**：在 `docker-build-ascend-a2.yml`、`docker-build-ascend-a3.yml`、`docker-build-ascend-sglang-a2.yml` 和 `docker-build-ascend-sglang-a3.yml` 中，将 `cache-from: type=gha` 和 `cache-to: type=gha,mode=max` 分别改为带 `scope` 参数的形式（如 `cache-from: type=gha,scope=ascend-${{ matrix.tag }}`）。这实现了不同 tag 之间的缓存隔离，避免因共享缓存导致的构建失败或缓存误用。

### 无核心代码变更，仅 YAML 配置调整。

## 评论区精华
无有效的 review 讨论。PR 只有一个来自 GitHub 机器人的自动评论，无实际内容。

## 风险与影响
- **风险**：极低。所有变更仅涉及 CI 配置：
 - 步骤顺序调整：如果该 job 内部还有其他依赖，但当前未发现问题；
 - 缓存作用域：可能因作用域命名冲突导致缓存未命中（概率极低）。
- **影响**：
 - 正面：提升 nightly CI 的稳定性，减少因步骤顺序导致的失败；Docker 构建在各 tag 之间不会互相干扰缓存。
 - 负面：无。

## 关联脉络
- 与 #7148（同样修复 Ascend nightly CI）直接相关，本 PR 在 #7148 的基础上进一步调整了步骤顺序；
- 与 #7124（修复 Ascend Docker tag）同属 Ascend CI 维护系列。