Skip to main content

cicd

CI/CD reference for NeMo-RL. Covers GitHub Actions pipeline structure, CI triggering via /ok to test, and CI failure investigation.

Source facts

Repository
NVIDIA-NeMo/RL
Last source activity
October 27, 2026 at 06:02
Detected SKILL.md language
English
Stars
2,101
Forks
627

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
cicd
description
CI/CD reference for NeMo-RL. Covers GitHub Actions pipeline structure, CI triggering via /ok to test, and CI failure investigation.
when_to_use
Investigating a CI failure; understanding the pipeline structure; triggering CI; 'CI is red', 'how do I trigger CI', '/ok to test', 'PR workflow', 'where are the logs', 'CI did not run', 'copy-pr-bot'.
# CI/CD Guide --- ## How CI Works NeMo-RL CI runs on GitHub Actions. Workflows live in `.github/workflows/`. The main test workflow triggers on pushes to `pull-request/<number>` branches. These branches are created automatically by **copy-pr-bot** when a contributor pushes to their fork and the PR receives a trust signal: - The commit is GPG-signed by a maintainer, **or** - A maintainer posts `/ok to test <full-sha>` as a PR comment. --- ## Triggering CI After pushing a new commit to your PR, trigger CI with: ``` /ok to test <full-commit-sha> ``` Use `git rev-parse HEAD` (not the short form) to get the full SHA. > **Re-triggering after new commits**: each `/ok to test <sha>` is specific to > that SHA. After pushing additional commits, post a new comment with the > updated SHA. --- ## CI Labels Every PR **must** have exactly one `CI:*` label — the quality-check job stays red until one is attached. Labels control which test tier runs and whether a new container image is built. | Label | What runs | Container | |-------|-----------|-----------| | `CI:docs` | Doc tests only | Reuses main container (PRs to a release branch such as `r0.8.0` reuse that branch's container, same as `CI:Lfast`) | | `CI:Lfast` | Fast test subset | Reuses main container (PRs to a release branch such as `r0.8.0` reuse that branch's container, published only by pushes to that branch after merges) | | `CI:L0` | Unit tests + docs + lint | Builds new image | | `CI:L1` | L0 + functional tests | Builds new image | | `CI:L2` | Same as L1 today (plan to add convergence tests) | Builds new image | | `Skip CICD` | Nothing (skips all tests) | — | **Default on merge group / push to main**: L1. **Which label to attach when opening a PR:** | Changed paths / nature of change | Label | |----------------------------------|-------| | Docs only (`docs/`, `*.md`, docstrings) | `CI:docs` | | Default, including new features and bug fixes | `CI:Lfast` | | (Rarely needed) | `CI:L0` | | Large refactor, broad changes to core code, or dependency changes | `CI:L1` | | (Not needed: it runs the same jobs as `CI:L1` today) | `CI:L2` | --- ## CI Failure Investigation ```bash # List recent workflow runs for the PR gh run list --repo NVIDIA-NeMo/RL --branch "pull-request/<pr-number>" # View failing run summary gh run view <run-id> --repo NVIDIA-NeMo/RL # Stream failing job output gh run view <run-id> --repo NVIDIA-NeMo/RL --log-failed ``` Common failure patterns: | Symptom | Likely cause | Fix | |---------|-------------|-----| | CI never starts | No trust signal or copy-pr-bot not triggered | Post `/ok to test <sha>` | | `semantic-pull-request` fails | PR title doesn't follow Conventional Commits | Fix PR title; see `contributing` skill | | Linting fails | Style violation | Run `uv run ruff check --fix . && uv run ruff format .` | | Unit test failure | Code regression or missing dependency | Reproduce locally; see `testing` skill |
View on GitHub