Skip to content

fix: PTQ 1GPU, export PP divisibility, hidden states conversations key #6155

fix: PTQ 1GPU, export PP divisibility, hidden states conversations key

fix: PTQ 1GPU, export PP divisibility, hidden states conversations key #6155

Workflow file for this run

# 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