-
Notifications
You must be signed in to change notification settings - Fork 177
Add Windows on ARM (WoA) Support for CI and Wheel Building #1043
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the contribution, a few small comments, although we may want to hold off on merge for this until actions/partner-runner-images#77 lands.
.github/workflows/ci.yml
Outdated
@@ -45,16 +45,20 @@ jobs: | |||
CARGO_TARGET_DIR: ${{ format('{0}/src/_bcrypt/target/', github.workspace) }} | |||
|
|||
windows: | |||
runs-on: windows-latest | |||
runs-on: ${{ matrix.WINDOWS.ARCH == 'arm64' && 'windows-11-arm' || 'windows-latest' }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rather than sticking logic in here I'd prefer we just add a new key (perhaps IMAGE
) to the windows matrix entries so this can just be ${{ matrix.WINDOWS.RUNNER }}
. That will add an extra windows-latest
but I prefer that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the review! I’ve updated the Windows matrix to use a RUNNER key as suggested, and removed the inline runs-on logic accordingly.
@@ -64,6 +68,10 @@ jobs: | |||
with: | |||
python-version: ${{ matrix.PYTHON.VERSION }} | |||
architecture: ${{ matrix.WINDOWS.ARCH }} | |||
- uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this still necessary? Have they still not fixed the windows-arm runners to have rust in the default image? Looks like no: actions/partner-runner-images#77 (comment)
Having a partner manage your GitHub-hosted CI images is not a great choice GitHub...
I'm weakly against merging this until they fix their core image.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm pinging the maintainers of runner image . New release should happen very soon.
.github/workflows/wheel-builder.yml
Outdated
@@ -222,13 +222,14 @@ jobs: | |||
|
|||
windows: | |||
needs: [sdist] | |||
runs-on: windows-latest | |||
runs-on: ${{ matrix.WINDOWS.ARCH == 'arm64' && 'windows-11-arm' || 'windows-latest' }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as the other runs-on 😄
Windows on ARM (WoA) devices are steadily becoming more common, yet many Python packages still lack prebuilt wheels and CI coverage for this platform.
With GitHub Actions now providing native WoA runners (
windows-11-arm
), this change introduces:windows-11-arm
runneraarch64-pc-windows-msvc
windows
job matrix to include ARM64-specific logic while excluding unsupported Python versions (e.g., 3.8)wheel-builder.yml
to produce WoA-compatible wheels