Skip to content

feat(training): NeMo Gym resources server for a bundle's tasks #9

feat(training): NeMo Gym resources server for a bundle's tasks

feat(training): NeMo Gym resources server for a bundle's tasks #9

Workflow file for this run

name: NeMo Gym contract
# Rollouts through NeMo Gym's resources server for a bundle (agent_env.training.nemo_gym, tst/nemo_gym), on the nemo-gym
# uv.lock pins and on the latest nemo-gym, since NeMo RL follows Gym's main branch. nemo-gym needs Python 3.13.14 or
# later, so it isn't in the dev extra the other jobs install. It runs on pull requests that touch the helper, the
# OpenEnv server it plays or the tier, weekly, and on demand; it isn't a required check.
on:
pull_request:
paths:
- "src/agent_env/training/**"
- "src/agent_env/openenv/**"
- "tst/nemo_gym/**"
- "tst/unit/training/**"
- "pyproject.toml"
- "uv.lock"
- ".github/workflows/nemo-gym.yml"
schedule:
- cron: "41 7 * * 1"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: nemo-gym-${{ github.event_name == 'pull_request' && github.ref || github.sha }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
env:
PIP_DISABLE_PIP_VERSION_CHECK: "1"
jobs:
server:
name: server (nemo-gym ${{ matrix.nemo-gym }})
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
nemo-gym: ["locked", "latest"]
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: "3.13"
- name: Install from uv.lock with the nemo-gym extra
run: |
python -m pip install --quiet -r .github/ci-requirements.txt
uv sync --locked --extra dev --extra nemo-gym --python "$(command -v python)"
if [ "${{ matrix.nemo-gym }}" = latest ]; then uv pip install --python .venv/bin/python --upgrade nemo-gym; fi
.venv/bin/python -c "import nemo_gym; print('nemo-gym', nemo_gym.__version__)"
- name: NeMo Gym tier
run: .venv/bin/python -m pytest tst/nemo_gym -rA --timeout=900 --junitxml=junit-nemo-gym.xml
- name: No skips
if: always()
run: .venv/bin/python .github/scripts/check_skip_policy.py junit-nemo-gym.xml