From 53ef1364aa9cf53142f34ab5c78c4d4a4cb45e81 Mon Sep 17 00:00:00 2001 From: 73junito <73junito@gmail.com> Date: Tue, 30 Dec 2025 13:47:17 -0600 Subject: [PATCH] ci: add matrix workflow including windows to catch platform-specific test flakes --- .github/workflows/ci-matrix.yml | 45 +++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 .github/workflows/ci-matrix.yml diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml new file mode 100644 index 0000000..c06ab0a --- /dev/null +++ b/.github/workflows/ci-matrix.yml @@ -0,0 +1,45 @@ +name: CI Matrix (including Windows) + +on: + pull_request: + branches: [ main ] + push: + branches: [ main ] + +jobs: + test: + name: Test on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + python-version: [3.11] + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt || true + - name: Run tests + run: | + # ensure a project-local temp dir to avoid AppData permission issues on Windows + python - <<'PY' +import os, pathlib +p = pathlib.Path('tmp') +p.mkdir(exist_ok=True) +os.environ['TMP'] = str(p.resolve()) +os.environ['TEMP'] = str(p.resolve()) +print('TMP/TEMP set to', os.environ['TMP']) +PY + pytest --basetemp=tmp/pytest --cov --cov-branch --cov-report=xml + - name: Upload coverage to Artifacts + if: always() + uses: actions/upload-artifact@v4 + with: + name: coverage-xml-${{ matrix.os }} + path: coverage.xml