Skip to content

Commit 45a4263

Browse files
HanSur94claude
andcommitted
fix(ci): split Windows CI into unit tests (pip) + install.bat smoke test
Unit tests and integration tests use pip install -e (reliable). Separate test-windows-install-bat job validates install.bat runs and produces a working install. This avoids the PyPI cache issue where install.bat picks up the old published version. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent b829442 commit 45a4263

1 file changed

Lines changed: 21 additions & 19 deletions

File tree

.github/workflows/ci.yml

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -78,23 +78,32 @@ jobs:
7878
- uses: actions/setup-python@v5
7979
with:
8080
python-version: ${{ matrix.python-version }}
81+
- run: pip install -e ".[dev,monitoring]"
82+
- name: Verify all modules load
83+
run: |
84+
python -c "from matlab_mcp.server import main; print('OK: server')"
85+
python -c "from matlab_mcp.auth.middleware import BearerAuthMiddleware; print('OK: auth')"
86+
python -c "from matlab_mcp.hitl.gate import request_execute_approval; print('OK: hitl')"
87+
python -c "from matlab_mcp.config import HITLConfig; print('OK: HITLConfig')"
88+
- name: Run tests (no MATLAB engine)
89+
run: pytest tests/ -v -k "not matlab" --ignore=tests/test_integration.py --ignore=tests/test_mcp_integration.py -W ignore::pytest.PytestUnraisableExceptionWarning
90+
91+
test-windows-install-bat:
92+
needs: lint
93+
runs-on: windows-latest
94+
steps:
95+
- uses: actions/checkout@v4
96+
- uses: actions/setup-python@v5
97+
with:
98+
python-version: "3.12"
8199
- name: Run install.bat (real user install path)
82100
shell: cmd
83101
run: call install.bat < nul
84-
- name: Verify server loads via install.bat venv
102+
- name: Verify install.bat produced working install
85103
shell: cmd
86104
run: |
87105
call .venv\Scripts\activate.bat
88106
python -c "from matlab_mcp.server import main; print('OK: server module loads')"
89-
python -c "from matlab_mcp.auth.middleware import BearerAuthMiddleware; print('OK: auth module loads')"
90-
python -c "from matlab_mcp.hitl.gate import request_execute_approval; print('OK: hitl module loads')"
91-
python -c "from matlab_mcp.config import HITLConfig; print('OK: HITLConfig loads')"
92-
- name: Install test deps and run tests
93-
shell: cmd
94-
run: |
95-
call .venv\Scripts\activate.bat
96-
pip install pytest pytest-asyncio pytest-timeout --quiet
97-
pytest tests/ -v -k "not matlab" --ignore=tests/test_integration.py --ignore=tests/test_mcp_integration.py -W ignore::pytest.PytestUnraisableExceptionWarning
98107
99108
test-macos:
100109
needs: lint
@@ -130,15 +139,8 @@ jobs:
130139
- uses: actions/setup-python@v5
131140
with:
132141
python-version: "3.12"
133-
- name: Run install.bat (real user install path)
134-
shell: cmd
135-
run: call install.bat < nul
136-
- name: Run integration test via install.bat venv
137-
shell: cmd
138-
run: |
139-
call .venv\Scripts\activate.bat
140-
pip install pytest pytest-asyncio pytest-timeout httpx mcp --quiet
141-
pytest tests/test_mcp_integration.py -v -m integration --timeout=60
142+
- run: pip install -e ".[dev,monitoring]" pytest-timeout
143+
- run: pytest tests/test_mcp_integration.py -v -m integration --timeout=60
142144

143145
remote-integration-test:
144146
needs: lint

0 commit comments

Comments
 (0)