diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 214b6c59..120bc95a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,6 +83,27 @@ jobs: run: python -m pip install openpyxl==3.1.5 - run: python -m unittest discover -s tests -t . -v + python-tests-windows: + # Linux-green says nothing about Windows file locking, console encodings or + # path handling, and many users run Windows: #480 and #486 passed every Linux + # leg and failed there. The suite runs under Git Bash, the shell Claude Code + # uses for its Bash tool on Windows, with stdout left at the Windows default + # encoding, so a cp1252 crash shows up here the way it does for a user. + name: Python tool tests (Windows, Python 3.14) + runs-on: windows-latest + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + persist-credentials: false + - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 + with: + python-version: "3.14" + - name: Install Excel integration test dependency + run: python -m pip install openpyxl==3.1.5 + - name: Run the suite under Git Bash + shell: bash + run: python -m unittest discover -s tests -t . -v + dependency-review: name: Dependency review # Requires the repo's Dependency graph, which not every repo (upstream or diff --git a/CHANGELOG.md b/CHANGELOG.md index 44a921ab..3324f2c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,16 @@ per-file diff commands. ## [Unreleased] +### Added + +- **CI runs the Python suite on Windows** (`.github/workflows/ci.yml` `python-tests-windows`) - every + job ran on Ubuntu, so a Windows-only failure reached master with all checks green: #480's test + (an atomic rename that Windows file locking refuses) and #486's (a tool printing non-ASCII JSON + to a piped cp1252 stdout) both passed every Linux leg and failed on Windows 11. The new job runs + the full suite on `windows-latest` with Python 3.14 under Git Bash, the shell Claude Code uses + on Windows, and leaves stdout at the Windows default encoding so the same failures show up in + CI. The five Linux legs keep their names, so required checks are unchanged. + ### Changed - **`freehire-search` documents the `OR` and `title:` query operators** (#674,