-
Notifications
You must be signed in to change notification settings - Fork 93
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
Build aarch64 wheels #563
Build aarch64 wheels #563
Changes from all commits
d8ae726
b28aa1c
46a39c8
eb280d6
573cff7
6bd9cf6
e590abd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -6,9 +6,21 @@ concurrency: | |||||
group: ${{ github.workflow }}-${{ github.ref }} | ||||||
cancel-in-progress: true | ||||||
|
||||||
env: | ||||||
# Build all wheels on either: | ||||||
# - tagged release | ||||||
# - pull request opened with "test all wheels" label | ||||||
# - pull requests when "test all wheels" label is added | ||||||
BUILD_ALL: | | ||||||
${{ | ||||||
(github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')) | ||||||
|| contains(github.event.pull_request.labels.*.name, 'test all wheels') | ||||||
|| (github.event.action == 'labeled' && github.event.label.name == 'test all wheels') | ||||||
}} | ||||||
|
||||||
jobs: | ||||||
build_wheels: | ||||||
name: Build wheel on ${{ matrix.os }} | ||||||
name: Build wheels on ${{ matrix.os }} | ||||||
runs-on: ${{ matrix.os }} | ||||||
strategy: | ||||||
fail-fast: false | ||||||
|
@@ -18,14 +30,25 @@ jobs: | |||||
env: | ||||||
CIBW_TEST_COMMAND: python -c "import numcodecs" | ||||||
CIBW_BUILD: "cp311-* cp312-* cp313-*" | ||||||
CIBW_SKIP: "pp* *-musllinux_* *win32 *_i686 *_s390x" | ||||||
CIBW_ARCHS_MACOS: native | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Think we want to make sure we are building for
Suggested change
|
||||||
CIBW_ARCHS_WINDOWS: native | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we want to try the same thing for Windows ARM?
Suggested change
Basing this off this doc |
||||||
CIBW_ARCHS_LINUX: "x86_64 aarch64" | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So will this build both Linux wheels in the same job? |
||||||
# note: CIBW_ENVIRONMENT is now set in pyproject.toml | ||||||
|
||||||
steps: | ||||||
- uses: actions/checkout@v4 | ||||||
with: | ||||||
submodules: true | ||||||
|
||||||
- name: Restrict number of wheel builds on PRs | ||||||
if: ${{ !env.BUILD_ALL }} | ||||||
run: | | ||||||
echo "CIBW_BUILD=cp310-win_amd64 cp311-manylinux_x86_64 cp312-macosx_x86_64 cp312-macosx_arm64" >> $GITHUB_ENV | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we add Python 3.13 in this list? Perhaps using the other macOS build?
Suggested change
|
||||||
|
||||||
- name: Set up QEMU | ||||||
if: ${{ matrix.os == 'ubuntu-latest' }} | ||||||
uses: docker/setup-qemu-action@v3 | ||||||
|
||||||
- uses: pypa/[email protected] | ||||||
|
||||||
- uses: actions/upload-artifact@v4 | ||||||
|
Original file line number | Diff line number | Diff line change | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -24,7 +24,9 @@ | |||||||||||||
if have_cflags: | ||||||||||||||
# respect compiler options set by user | ||||||||||||||
pass | ||||||||||||||
elif os.name == 'posix': | ||||||||||||||
elif os.name == 'posix' and os.uname()[4] != 'aarch64': | ||||||||||||||
# These flags aren't recognised by gcc on aarch64 | ||||||||||||||
# (at least when we build the aarch64 wheens on GitHub actions) | ||||||||||||||
Comment on lines
+27
to
+29
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||
if disable_sse2: | ||||||||||||||
base_compile_args.append('-mno-sse2') | ||||||||||||||
elif have_sse2: | ||||||||||||||
|
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.
Ok so in this case we are relying on maintainers to add the label for the wheel builds
Is it worth considering an option users can opt-in with? Like commit message text or PR title?