fix: PTQ 1GPU, export PP divisibility, hidden states conversations key #6155
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
| # NOTE: Make sure this file is consistent with .gitlab/tests.yml | |
| name: Unit tests | |
| on: | |
| pull_request: | |
| branches: [main, release/*, feature/*] | |
| push: | |
| branches: [main, release/*, feature/*] | |
| paths: | |
| - ".github/workflows/unit_tests.yml" | |
| - "modelopt/**" | |
| - "noxfile.py" | |
| - "pyproject.toml" | |
| - "tests/unit/**" | |
| - "tools/launcher/**" | |
| schedule: | |
| - cron: "0 0 * * *" # Nightly | |
| workflow_dispatch: | |
| # On-demand | |
| concurrency: | |
| # Cancel previous runs if new commit is pushed | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
| cancel-in-progress: true | |
| jobs: | |
| check-dco: | |
| uses: ./.github/workflows/_wait_for_checks.yml | |
| permissions: | |
| checks: read | |
| secrets: inherit | |
| with: | |
| match_pattern: "^DCO$" | |
| check-file-changes: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| any_changed: ${{ steps.changed.outputs.any_changed || steps.non-pr.outputs.any_changed }} | |
| steps: | |
| - id: non-pr | |
| if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' | |
| run: echo "any_changed=true" >> $GITHUB_OUTPUT | |
| - if: github.event_name == 'pull_request' | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - if: github.event_name == 'pull_request' | |
| name: Check for changes in test-relevant paths | |
| id: changed | |
| uses: step-security/changed-files@v46.0.5 | |
| with: | |
| files: | | |
| .github/workflows/unit_tests.yml | |
| modelopt/** | |
| noxfile.py | |
| pyproject.toml | |
| tests/unit/** | |
| tools/launcher/** | |
| linux: | |
| needs: [check-dco] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/ubuntu-setup | |
| - name: Run unit tests | |
| env: | |
| COVERAGE_PROCESS_START: ${{ github.workspace }}/pyproject.toml | |
| COVERAGE_FILE: ${{ github.workspace }}/.coverage | |
| run: pip install nox uv && nox -s "unit-3.12(torch_211, tf_latest)" | |
| - name: Upload coverage reports to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| flags: unit | |
| fail_ci_if_error: true | |
| verbose: true | |
| windows: | |
| if: needs.check-file-changes.outputs.any_changed == 'true' | |
| needs: [linux, check-file-changes] | |
| runs-on: windows-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - name: Run unit tests (without coverage) | |
| run: pip install nox uv && nox -s "unit-3.12(torch_211, tf_latest)" | |
| multi-version: | |
| if: needs.check-file-changes.outputs.any_changed == 'true' | |
| needs: [linux, check-file-changes] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - {nox_session: "unit-3.10(torch_211, tf_latest)", python_version: "3.10"} | |
| - {nox_session: "unit-3.11(torch_211, tf_latest)", python_version: "3.11"} | |
| - {nox_session: "unit-3.13(torch_211, tf_latest)", python_version: "3.13"} | |
| - {nox_session: "unit-3.12(torch_28, tf_latest)", python_version: "3.12"} | |
| - {nox_session: "unit-3.12(torch_29, tf_latest)", python_version: "3.12"} | |
| - {nox_session: "unit-3.12(torch_210, tf_latest)", python_version: "3.12"} | |
| - {nox_session: "unit-3.12(torch_211, tf_min)", python_version: "3.12"} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/ubuntu-setup | |
| with: | |
| python-version: ${{ matrix.python_version }} | |
| - name: Run unit tests | |
| run: pip install nox uv && nox -s "${{ matrix.nox_session }}" | |
| partial-install: | |
| if: needs.check-file-changes.outputs.any_changed == 'true' | |
| needs: [linux, check-file-changes] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-env: [onnx, torch] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/ubuntu-setup | |
| - name: Run unit tests | |
| run: pip install nox uv && nox -s "partial_unit(subset='${{ matrix.test-env }}')" | |
| launcher: | |
| if: needs.check-file-changes.outputs.any_changed == 'true' | |
| needs: [linux, check-file-changes] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - name: Run launcher tests | |
| working-directory: tools/launcher | |
| run: | | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| export PATH="$HOME/.local/bin:$PATH" | |
| uv venv .venv | |
| uv pip install -e . pytest | |
| uv run python3 -m pytest -v | |
| unit-pr-required-check: | |
| # Run even if some jobs are skipped | |
| if: ${{ github.event_name == 'pull_request' && always() }} | |
| needs: [check-file-changes, linux, windows, multi-version, partial-install, launcher] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Required unit tests did not succeed | |
| if: >- | |
| ${{ needs.linux.result != 'success' || (needs.check-file-changes.outputs.any_changed == 'true' && ( | |
| needs.windows.result != 'success' || | |
| needs.multi-version.result != 'success' || | |
| needs.partial-install.result != 'success' || | |
| needs.launcher.result != 'success' | |
| )) }} | |
| run: exit 1 |