1616 strategy :
1717 fail-fast : false
1818 matrix :
19- os : [ubuntu-latest, macos-latest]
19+ os : [ubuntu-latest, macos-latest, windows-latest ]
2020 steps :
2121 - uses : actions/checkout@v7
2222
4141 strategy :
4242 fail-fast : false
4343 matrix :
44- os : [ubuntu-latest, macos-latest]
44+ os : [ubuntu-latest, macos-latest, windows-latest ]
4545 steps :
4646 - uses : actions/checkout@v7
4747
6565 strategy :
6666 fail-fast : false
6767 matrix :
68- os : [ubuntu-latest, macos-latest]
68+ os : [ubuntu-latest, macos-latest, windows-latest ]
6969 python-version : ["3.11", "3.12", "3.13"]
7070 steps :
7171 - uses : actions/checkout@v7
@@ -108,7 +108,7 @@ jobs:
108108 strategy :
109109 fail-fast : false
110110 matrix :
111- os : [ubuntu-latest, macos-latest]
111+ os : [ubuntu-latest, macos-latest, windows-latest ]
112112 steps :
113113 - uses : actions/checkout@v7
114114
@@ -122,28 +122,33 @@ jobs:
122122 python -m build
123123
124124 - name : Install the built wheel into a clean venv
125+ shell : bash
125126 run : |
126127 python -m venv /tmp/wheeltest
127128 # Install ONLY from the built wheel (no source tree / editable install)
128- /tmp/wheeltest/bin/pip install --upgrade pip
129- /tmp/wheeltest/bin/pip install dist/*.whl
129+ /tmp/wheeltest/bin/pip install --upgrade pip || /tmp/wheeltest/Scripts/pip install --upgrade pip
130+ /tmp/wheeltest/bin/pip install dist/*.whl || /tmp/wheeltest/Scripts/pip install dist/*.whl
130131
131132 - name : CLI smoke test
132133 # Run from a neutral directory: if we ran inside the checkout, the
133134 # source `python_agent_harness/` tree would shadow the installed wheel
134135 # on sys.path and we'd be testing the source, not the built artifact.
135136 working-directory : /tmp
137+ shell : bash
136138 run : |
137139 set -euxo pipefail
138140 BIN=/tmp/wheeltest/bin/python-agent-harness
141+ if [ ! -f "$BIN" ]; then BIN=/tmp/wheeltest/Scripts/python-agent-harness; fi
139142 # Console script is installed and importable
140143 "$BIN" --help
141144 # Config subcommand runs without any API key / network
142145 "$BIN" config
143146 # Module entry point works too
144- /tmp/wheeltest/bin/python -m python_agent_harness --help
147+ PY=/tmp/wheeltest/bin/python
148+ if [ ! -f "$PY" ]; then PY=/tmp/wheeltest/Scripts/python; fi
149+ "$PY" -m python_agent_harness --help
145150 # Import resolves to the INSTALLED wheel + bundled prompts shipped
146- /tmp/wheeltest/bin/python - <<'PY'
151+ "$PY" - <<'PY'
147152 import importlib.resources as r
148153 import python_agent_harness
149154 loc = python_agent_harness.__file__
@@ -166,7 +171,7 @@ jobs:
166171 strategy :
167172 fail-fast : false
168173 matrix :
169- os : [ubuntu-latest, macos-latest]
174+ os : [ubuntu-latest, macos-latest, windows-latest ]
170175 steps :
171176 - uses : actions/checkout@v7
172177
@@ -184,6 +189,7 @@ jobs:
184189 # environment, which would flag unrelated tooling like pip/setuptools.
185190 # Record accepted/unfixable advisories in .pip-audit-known-vulnerabilities.
186191 - name : pip-audit
192+ shell : bash
187193 run : |
188194 IGNORE_VULNS=""
189195 if [ -f .pip-audit-known-vulnerabilities ]; then
0 commit comments