From 0e9eebbf57f7b9200095953912f17f14b363903b Mon Sep 17 00:00:00 2001 From: Dimitri Yatsenko Date: Thu, 23 Jul 2026 11:22:24 -0500 Subject: [PATCH] ci: add Windows unit-test job to catch OS-specific path bugs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The CI matrix ran Linux-only, so platform-specific defects — e.g. #1520, where file-protocol paths rendered with native backslashes broke garbage collection on Windows — could not be caught. Add a windows-latest leg running the container-free unit suite across both ends of the supported Python range (3.10, 3.14). pixi targets linux/osx only ([tool.pixi] platforms), so this leg installs via pip (.[test]) rather than pixi. Unit tests need no containers, so no Docker/DB is required on Windows. --- .github/workflows/test.yaml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 60d9b5e16..bce926fc2 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -68,3 +68,32 @@ jobs: - name: Run unit tests run: pixi run -e test pytest tests/unit -v + + # Windows unit tests: guard OS-specific behavior (path separators, etc.) that + # the Linux jobs above cannot catch — e.g. #1520, where file-protocol paths + # rendered with native backslashes broke garbage collection on Windows. + # pixi targets linux/osx only (see [tool.pixi] platforms), so this leg uses + # pip. Unit tests need no containers, so no Docker/DB is required on Windows. + unit-tests-windows: + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + # Exercise both ends of the supported range (requires-python >=3.10,<3.15). + python-version: ["3.10", "3.14"] + name: unit-tests-windows (py${{ matrix.python-version }}) + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # hatch-vcs derives the version from git history/tags + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install package with test extras + run: pip install -e ".[test]" + + - name: Run unit tests + run: pytest tests/unit -v