Skip to content
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

feat: Add support for ubuntu-24.04-arm GHA runner #2135

Merged
merged 2 commits into from
Jan 21, 2025
Merged

Conversation

mayeut
Copy link
Member

@mayeut mayeut commented Jan 18, 2025

Run all tests on GitHub Actions Ubuntu 24.04 aarch64 runner.

The emulation tests are kept for now.

We could also run armv7l tests on those same runners but it's not part of auto arch because:
1: not all aarch64 systems can run aarch32 binaries (we need EL0 aarch32 support - mac Mx SoC or Cavium ThunderX do not provide this for exemple).
2: part of the armv7l images are still experimental

If we want to run armv7l, we can probably amend the tests on GHA to request both aarch64 & armv7l architectures.

Fix #2131

@mayeut mayeut marked this pull request as ready for review January 18, 2025 16:41
@joerick
Copy link
Contributor

joerick commented Jan 20, 2025


Examples test run

Branch: example-config-test---gha-arm-2025-01-20T09-04-55

Service Config Status
github examples/github-minimal.yml Build

Generated by bin/run_example_ci_config.py



Examples test run

Branch: example-config-test---gha-arm-2025-01-20T09-05-21

Service Config Status
github examples/github-with-qemu.yml Build

Generated by bin/run_example_ci_config.py


Copy link
Contributor

@joerick joerick left a comment

Choose a reason for hiding this comment

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

Assuming the above goes green (✅), this looks good to me!

Comment on lines 26 to 27
# configure cibuildwheel to build native archs ('auto'), and some
# emulated ones
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
# configure cibuildwheel to build native archs ('auto'), and some
# emulated ones
# configure cibuildwheel on Linux to build native archs ('auto'),
# and to split the remaining architectures between the x86_64 and
# ARM runners

I don't love this way of doing ternary expressions, but it's all we have in GHA workflows, so I think adding a comment is nice.

Copy link
Member Author

Choose a reason for hiding this comment

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

I included your proposal and extended a bit on the auto armv7l peculiarity. That might be a bit too verbose but that's strange enough to deserve a also comment (it's "native" in some circumstances hence not in auto).

Copy link
Contributor

Choose a reason for hiding this comment

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

This change looks good to me. Question for another PR, but it makes me wonder if we could detect armv7l support and include that in auto on machines where that's possible.

Copy link
Member Author

Choose a reason for hiding this comment

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

if we could detect armv7l support and include that in auto on machines where that's possible.

That might be possible:

  • don't allow on platform other that Linux
  • try to run a small statically linked Linux exe & check if it works.

@joerick joerick changed the title ci(gha): add tests on ubuntu-24.04-arm feat: Add support for ubuntu-24.04-arm GHA runner Jan 21, 2025
@henryiii
Copy link
Contributor

Not sure this is a feature. Current cibuildwheel works fine with native ARM, already using it in several projects. :)

@joerick
Copy link
Contributor

joerick commented Jan 21, 2025

Adding it to the example config upgrades it to a ✨ feature in my book :) - similar to if there was a CI platform that happened to work, as soon as we add it to the test matrix and document that it's supported by cibuildwheel, I think it would count as a feature.

But yeah, there were no code changes required - previous versions of cibuildwheel work on native ARM perfectly :)

@henryiii henryiii merged commit 3f123af into pypa:main Jan 21, 2025
25 checks passed
@mayeut mayeut deleted the gha-arm branch January 21, 2025 21:33
@@ -59,7 +59,7 @@ Usage

| | Linux | macOS | Windows | Linux ARM | macOS ARM | Windows ARM |
|-----------------|-------|-------|---------|-----------|-----------|-------------|
| GitHub Actions | ✅ | ✅ | ✅ | ✅¹ | ✅ | ✅² |
| GitHub Actions | ✅ | ✅ | ✅ | ✅ | ✅ | ✅² |
Copy link
Member

Choose a reason for hiding this comment

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

Should the actual ¹ text be dropped below as well?

Copy link
Contributor

Choose a reason for hiding this comment

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

That footnote still applies to Gitlab, who don't yet offer ARM runners.

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.

Start testing and document GHA-native Linux ARM runners
4 participants