name: Smoke Tests on: push: branches: ["main", "release/*", "develop"] pull_request: branches: ["main", "release/*", "develop"] permissions: contents: read env: # UV_TORCH_BACKEND only works with 'uv pip' commands, not 'uv sync'. # Used by 'uv pip install torch torchvision' step to install CPU-only PyTorch. UV_TORCH_BACKEND: "cpu" concurrency: group: model-smoke-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: try-all-models: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] python-version: ["3.10", "3.13"] timeout-minutes: 15 steps: - name: 📥 Checkout the repository uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: 🐍 Install uv and set Python version ${{ matrix.python-version }} uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0 with: python-version: ${{ matrix.python-version }} activate-environment: true - name: 🚀 Install Packages (plus extras) timeout-minutes: 5 # Install PyTorch CPU-only first (UV_TORCH_BACKEND=cpu works with 'uv pip') run: uv pip install -e .[plus] - name: 🔎 Smoke-test model instantiation, downloads, and inference run: python tests/run_smoke_all_models.py - name: Minimize uv cache run: uv cache prune --ci