Skip to content

Add Windows ARM64 support to CI - #3851

Open
chinazhangchao wants to merge 2 commits into
apache:mainfrom
chinazhangchao:chao/winarm64
Open

Add Windows ARM64 support to CI#3851
chinazhangchao wants to merge 2 commits into
apache:mainfrom
chinazhangchao:chao/winarm64

Conversation

@chinazhangchao

@chinazhangchao chinazhangchao commented Aug 25, 2026

Copy link
Copy Markdown

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.1 and 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:

python -m pytest --confcutdir={project}/tests/avro {project}/tests/avro/test_decoder.py

@chinazhangchao
chinazhangchao marked this pull request as ready for review August 25, 2026 07:52
Copilot AI lite review requested due to automatic review settings August 25, 2026 07:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_COMMAND to 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.

Comment on lines +39 to +43
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"
Comment on lines +39 to +43
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>
@chinazhangchao
chinazhangchao requested a lite review from Copilot August 25, 2026 09:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_WINDOWS for the windows-11-arm matrix entry rather than relying on CIBW_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 rambleraptor left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we running just this single test for Windows ARM?

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.

3 participants