Add Windows ARM64 support to CI - #3851
Conversation
There was a problem hiding this comment.
Pull request overview
Adds Windows ARM64 coverage to the artifact build workflows so PyPI/SVN release-candidate builds can run on a Windows ARM runner, with a minimal test setup to avoid the current lack of PyArrow Windows ARM64 wheels.
Changes:
- Extend the OS matrix in both artifact-build workflows to include a Windows ARM runner.
- Allow per-matrix overrides of
CIBW_BEFORE_TEST/CIBW_TEST_COMMANDto run a minimal pytest invocation for Windows ARM.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| .github/workflows/svn-build-artifacts.yml | Adds Windows ARM runner to the build matrix and introduces matrix-based overrides for cibuildwheel test steps. |
| .github/workflows/pypi-build-artifacts.yml | Same as SVN workflow: adds Windows ARM runner and matrix-based overrides for cibuildwheel test steps. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| os: [ ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-15-intel, macos-latest ] | ||
| include: | ||
| - os: windows-11-arm | ||
| before_test: "uv pip install pytest==9.1.1" | ||
| test_command: "python -m pytest --confcutdir={project}/tests/avro {project}/tests/avro/test_decoder.py" |
| os: [ ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-15-intel, macos-latest ] | ||
| include: | ||
| - os: windows-11-arm | ||
| before_test: "uv pip install pytest==9.1.1" | ||
| test_command: "python -m pytest --confcutdir={project}/tests/avro {project}/tests/avro/test_decoder.py" |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
Suppressed comments (1)
.github/workflows/pypi-build-artifacts.yml:82
- Given the goal is Windows ARM64 support, it would be safer to explicitly set
CIBW_ARCHS_WINDOWSfor thewindows-11-armmatrix entry rather than relying onCIBW_ARCHS: auto64. This helps ensure the Windows ARM64 leg always produces ARM64 wheels (and avoids accidentally building AMD64 wheels if that’s what the available interpreter resolves to).
CIBW_ARCHS: "auto64"
| @@ -71,8 +75,10 @@ jobs: | |||
| # Ignore 32 bit architectures | |||
| CIBW_ARCHS: "auto64" | |||
rambleraptor
left a comment
There was a problem hiding this comment.
It might be worth publishing Windows ARM64 wheels if there's interest.
| include: | ||
| - os: windows-11-arm | ||
| before_test: "uv pip install pytest==9.1.1" | ||
| test_command: "python -m pytest --confcutdir={project}/tests/avro {project}/tests/avro/test_decoder.py" |
There was a problem hiding this comment.
Why are we running just this single test for Windows ARM?
Hi @kevinjqliu , I'm from Microsoft and recently I'm working on improving Python ecosystem support for Windows on Arm.
So I updates the CI workflows to add support for Windows ARM64 builds and tests. Could you please help to review? Thanks.
Rationale for this change
Add Windows ARM64 to the PyPI and source distribution artifact build workflows.
Because PyArrow does not currently publish Windows ARM64 wheels, the Windows ARM64 runner uses a minimal test environment with
pytest==9.1.1and runs the Avro decoder test directly. Other platforms continue to use the existing development-environment setup and test command.Are these changes tested?
The Windows ARM64 configuration runs: