Skip to content

Add Windows ARM64 support to CI - #292

Merged
letmaik merged 3 commits into
letmaik:mainfrom
chinazhangchao:chao/winarm64
Aug 24, 2026
Merged

letmaik merged 3 commits into
letmaik:mainfrom
chinazhangchao:chao/winarm64

Conversation

@chinazhangchao

@chinazhangchao chinazhangchao commented Aug 21, 2026 •

Copy link
Copy Markdown
Contributor

Hi @letmaik , 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.

Test Results:

https://github.com/chinazhangchao/rawpy/actions/runs/32688967592

Key changes include:

Windows ARM64 Support:

  • Adds ARM64 (arm64) as a supported architecture in the build and test matrices in .github/workflows/ci.yml, enabling CI for Windows ARM64 across Python 3.11–3.14. [1] [2] [3]
  • Updates documentation in DEVELOP.md to reflect that Windows ARM64 wheels are now built (Python 3.11+).

Build and Test Script Enhancements:

  • Refactors .github/scripts/build-windows.ps1 and .github/scripts/test-sdist-windows.ps1 to support arm64 by:
    • Accepting an Architecture parameter,
    • Dynamically setting Visual Studio architecture, vcpkg triplet, and Python platform,
    • Validating the Python architecture, and
    • Using the correct vcpkg branch and triplet for each architecture. [1] [2] [3] [4] [5] [6] [7]
  • Updates .github/scripts/test-windows.ps1 to:
    • Support ARM64 in the test matrix,
    • Validate both Python version and architecture,
    • Ensure the correct wheel is installed for the specific architecture. [1] [2] [3]

Environment and Build Robustness:

  • Passes vcpkg toolchain and triplet information from the environment to the CMake build in setup.py, ensuring consistent builds across all Windows architectures. [1] [2]
  • Updates the vcpkg branch used for dependency installation to a newer version for all builds. [1] [2]

CI Workflow Improvements:

  • Ensures the correct Python architecture is set up in the CI workflow by passing the architecture parameter to actions/setup-python. [1] [2]

These changes collectively enable full CI coverage and wheel distribution for Windows ARM64, modernize the build process, and improve reliability for all Windows builds.

@chinazhangchao
chinazhangchao marked this pull request as ready for review August 21, 2026 06:27
Comment thread .github/workflows/ci.yml Outdated
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.config.python-version }}
architecture: ${{ matrix.config.python-arch == 'x86_64' && 'x64' || matrix.config.python-arch }}

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

This condition looks a bit odd, can you double check?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good catch! Fixed.

@letmaik

letmaik commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Thanks a lot for the contribution, much appreciated.

@chinazhangchao
chinazhangchao requested a review from letmaik August 24, 2026 05:21
@letmaik
letmaik merged commit 5160b0b into letmaik:main Aug 24, 2026
69 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.

2 participants