diff --git a/.github/workflows/pythonunit.yml b/.github/workflows/pythonunit.yml new file mode 100644 index 00000000..506610c4 --- /dev/null +++ b/.github/workflows/pythonunit.yml @@ -0,0 +1,45 @@ +name: Python Unit Tests + +on: + workflow_dispatch: # Only allow manual trigger of the workflow + +env: + # Configure a constant location for the uv cache + UV_CACHE_DIR: /tmp/.uv-cache + +jobs: + python-unit-tests: + name: Python Unit Tests + runs-on: ${{ matrix.os }} + continue-on-error: ${{ matrix.experimental }} + strategy: + fail-fast: true + matrix: + python-version: ["3.10", "3.11", "3.12"] + os: [ubuntu-latest, windows-latest, macos-latest] + experimental: [false] + include: + - python-version: "3.13" + os: "ubuntu-latest" + experimental: true + env: + UV_PYTHON: ${{ matrix.python-version }} + permissions: + contents: write + defaults: + run: + working-directory: python + steps: + - uses: actions/checkout@v4 + - name: Set up uv + uses: astral-sh/setup-uv@v5 + with: + version: "0.5.x" + enable-cache: true + cache-suffix: ${{ runner.os }}-${{ matrix.python-version }} + cache-dependency-glob: "**/uv.lock" + - name: Install the project + run: uv sync --all-extras --dev -U --prerelease=if-necessary-or-explicit + - name: Test with pytest + env: + PYTHON_GIL_