Skip to content

ci: add windows-latest to test matrix (P1 prevention) - #9

Merged
refined-element merged 1 commit into
masterfrom
ci/add-windows-matrix
Jul 23, 2026
Merged

ci: add windows-latest to test matrix (P1 prevention)#9
refined-element merged 1 commit into
masterfrom
ci/add-windows-matrix

Conversation

@refined-element

Copy link
Copy Markdown
Owner

Why

This SDK's CI ran Linux-only, and that gap is what let the auth-bypass ship: the old secp256k1 dependency built fine on Linux but failed to install on Windows, and CI never noticed. The backend is now coincurve (ships prebuilt wheels for all platforms), so Windows should work — this change proves it on every PR and prevents the class of regression from recurring.

What changed

Converted the test job in both test.yml and publish.yml from a 1-D Python-version matrix on ubuntu-latest to a 2-D OS × Python matrix:

   test:
-    runs-on: ubuntu-latest
+    runs-on: ${{ matrix.os }}
     strategy:
       matrix:
+        os: [ubuntu-latest, windows-latest]
         python-version: ["3.10", "3.11", "3.12"]
  • 6 legs per workflow (2 OS × 3 Python) instead of 3.
  • Steps unchanged: pip install -e ".[dev]" and python -m pytest tests/ -v are both cross-platform (no bash-only shell steps in the test job).
  • The publish job stays ubuntu-latest (it has bash-specific steps and is not part of the test matrix — untouched).

Local Windows verification

Ran the exact CI leg locally on Windows (Python 3.12, win32) in a clean venv:

  • pip install -e ".[dev]" succeeded — coincurve installed from a prebuilt wheel, no native build toolchain needed.
  • python -m pytest: 191 passed (matches the Linux baseline of 191, no failures).

🤖 Generated with Claude Code

https://claude.ai/code/session_01CYXrdWWjKo5AyGqFAfrdgK

Expand the test job from Linux-only to a 2-D OS x Python matrix
(ubuntu-latest, windows-latest) in both test.yml and publish.yml so CI
proves the suite passes on Windows on every PR and publish.

Linux-only CI is what let the auth-bypass ship: the old secp256k1
dependency built on Linux but failed on Windows, and CI never noticed.
The backend is now coincurve (prebuilt wheels for all platforms), so
Windows works — verified locally: 191 passed on Python 3.12/win32.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYXrdWWjKo5AyGqFAfrdgK
@refined-element
refined-element merged commit e4f0368 into master Jul 23, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant