SuperAPI AI 工具集

cicd

部署与运维

查看项目

更新于 10-17 01:23

技能介绍

CI/CD 指南

用途

本技能是 NeMo-RL 的 CI/CD 参考,覆盖 GitHub Actions 流水线结构、通过 /ok to test 触发 CI,以及 CI 失败排查。

CI 如何工作

NeMo-RL CI 运行在 GitHub Actions 上,工作流位于 .github/workflows/。

主测试工作流在推送到 pull-request/<number> 分支时触发。这些分支由 copy-pr-bot 在贡献者推送到其 fork 且 PR 收到信任信号后自动创建:

  • 提交由维护者 GPG 签名,或
  • 维护者以 PR 评论形式发布 /ok to test <full-sha>。

触发 CI

向 PR 推送新提交后,用以下方式触发 CI:

/ok to test <full-commit-sha>

使用 git rev-parse HEAD(而非短格式)获取完整 SHA。

新提交后重新触发:每个 /ok to test <sha> 都针对该特定 SHA。推送额外提交后,需用更新后的 SHA 发布新评论。

CI 标签

每个 PR 必须有且仅有一个 CI:* 标签——在附加标签前,质量检查任务会一直保持红色。标签控制运行哪个测试层级以及是否构建新的容器镜像。

标签 运行内容 容器
CI:docs 仅文档测试 复用主容器(指向发布分支如 r0.8.0 的 PR 复用该分支的容器,与 CI:Lfast 相同)
CI:Lfast 快速测试子集 复用主容器(指向发布分支如 r0.8.0 的 PR 复用该分支的容器,仅由合并后对该分支的推送发布)
CI:L0 单元测试 + 文档 + lint 构建新镜像
CI:L1 L0 + 功能测试 构建新镜像
CI:L2 L1 + 收敛测试 构建新镜像
Skip CICD 不运行(跳过所有测试) —

merge group / 推送到 main 时的默认值:L1。

打开 PR 时应附加哪个标签:

变更路径 / 变更性质 标签
仅文档(docs/、*.md、docstrings) CI:docs
琐碎修复,无逻辑变更 CI:Lfast
新代码、缺陷修复、重构 CI:L0
可能影响模型行为的变更 CI:L1
可能影响收敛的变更 CI:L2

CI 失败排查

# 列出 PR 的近期工作流运行
gh run list --repo NVIDIA-NeMo/RL --branch "pull-request/<pr-number>"

# 查看失败运行的摘要
gh run view <run-id> --repo NVIDIA-NeMo/RL

# 流式查看失败任务的输出
gh run view <run-id> --repo NVIDIA-NeMo/RL --log-failed

常见失败模式:

症状 可能原因 修复
CI 从不启动 无信任信号或 copy-pr-bot 未触发 发布 /ok to test <sha>
semantic-pull-request 失败 PR 标题不符合 Conventional Commits 修改 PR 标题;见 contributing 技能
Linting 失败 风格违规 运行 uv run ruff check --fix . && uv run ruff format .
单元测试失败 代码回归或缺少依赖 本地复现;见 testing 技能