Repository navigation
feat(training): NeMo Gym resources server for a bundle's tasks #9
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |