diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e5ee857..e9b0b8c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,17 +34,32 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest] python: ["3.10", "3.12", "3.13"] + include: + # Windows tests on 3.12 only — the version the release binaries ship + # with. The self-hosted Windows runner blocks setup-python's install + # script (PowerShell execution policy), so it uses the host's `py` + # launcher + venv, same as release.yml. + - os: windows-latest + python: "3.12" steps: - name: Checkout uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python }} + - name: Set up Python ${{ matrix.python }} (Linux) + if: runner.os == 'Linux' uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} + - name: Set up Python venv (Windows) + if: runner.os == 'Windows' + shell: pwsh + run: | + py -${{ matrix.python }} -m venv .venv + Add-Content -Path $env:GITHUB_PATH -Value "$env:GITHUB_WORKSPACE\.venv\Scripts" + # bcc_core has no GUI imports, so the test suite needs no PySide6 — # keeps CI fast and avoids Qt system-library headaches on the runner. - name: Install test dependencies