Repository navigation
ci: build and test native Windows ARM64 wheels - #65
Open
johnnynunez wants to merge 3 commits into
Open
johnnynunez wants to merge 3 commits into
johnnynunez wants to merge 3 commits into
Conversation
Match the versions built in build.yml. CPython 3.10 is left out because NumPy, which is needed to build and test the wheel, has no Windows ARM64 wheels for it. Drop the push trigger for the PR branch.
Contributor
Author
|
Updated: the Windows ARM64 workflow now builds and tests CPython 3.11, 3.12, 3.13 and 3.14, the same versions as All four jobs pass (upstream |
Contributor
Author
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add
.github/workflows/windows-arm64.ymlto build and test wheels onwindows-11-armfor CPython 3.11, 3.12, 3.13 and 3.14 (the versions inbuild.yml), with ARM64 Python and the ARM64 MSVC toolchain. 3.10 is excluded because NumPy, needed to build and test the wheel, has no Windows ARM64 wheels for CPython 3.10.extensions.py: make the CMake build command generator-neutral (--parallel, honouringCMAKE_BUILD_PARALLEL_LEVEL) instead of always passing MSBuild's-mon Windows. Also setCMAKE_BUILD_TYPEso single-config generators such as Ninja build the requested configuration.Disable the unrelated Java bindings (
-DNLOPT_JAVA=OFF). On the hosted ARM64 runner CMake found a JDK and enabled a Java/SWIG target that failed under Ninja (https://github.com/DanielBok/nlopt-python/actions/runs/38172376061).Test each installed wheel in a fresh environment with:
t_python.pytest_scripts/test_build_commands.pycovers command construction for Windows/Linux and Release/Debug.This lane only uploads the tested wheels as artifacts; the PyPI deployment in
wc-build.ymlis unchanged. If you'd rather publish these with the other wheels, I can movewindows-11-armintowc-build.ymlinstead. The existing ARM PRs #51 and #52 cover Linux aarch64, not Windows ARM64.CI
All four ARM64 jobs pass at
364b56c8e6cb27712c5d13909e8f84e9f95f319c: https://github.com/DanielBok/nlopt-python/actions/runs/38311166571 (fork: https://github.com/johnnynunez/nlopt-python/actions/runs/38311166223). In thenlopt-2.11.0-cp311…cp314-win_arm64wheels the extension is PE Machine0xAA64and the RECORD hashes check out. Tests used NumPy 2.4.6 on 3.11 and 2.5.4 on 3.12–3.14.