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

NH-12708 Add ARM support #111

Merged
merged 133 commits into from
Feb 17, 2023
Merged

NH-12708 Add ARM support #111

merged 133 commits into from
Feb 17, 2023

Conversation

tammy-baylis-swi
Copy link
Contributor

Summary

Adds infra for ARM-compatible (aarch64) wheel builds and install tests.

Example builds

Testrelease 0.7.0.4 with sdist, x86_64 manylinux wheels, and aarch64 manylinux wheels on

TestPyPI: https://test.pypi.org/project/solarwinds-apm/0.7.0.4/#files
PackageCloud: https://packagecloud.io/solarwinds/solarwinds-apm-python

I will test updated PyPI publish with the next APM release.

Install tests using 0.7.0.4 from TestPyPI and PackageCloud pass:

Key changes

  1. build_publish_sdist_and_x86_64 GH jobs continue to build and upload x86_64 wheels and the sdist to TestPyPI or PyPI, using manylinux_2_28_x86_64.
    • sdist now contains both x86_64 and aarch64 liboboe .so files.
  2. New build_publish_aarch64 GH jobs use QEMU and manylinux_2_28_aarch64 to build aarch64 wheels and upload to TestPyPI or PyPI.
  3. Fixed PackageCloud build workflow, plus also builds and uploads aarch64 wheels.
  4. Hardcodes some aarch64, QEMU-run cases to Verify Installation workflow, as we are working on setting up self-hosted ARM test runners to replace these later.
  5. Replaced "x86_64" in builds and install tests with a new, required PLATFORM environment variable (one of: "x86_64", "aarch64").
  6. Replaced local build/dev container with two: x86_64 or aarch64.
    • run_docker_dev.sh and Dockerfile are replaced by a docker-compose to run either container locally with PLATFORM and manylinux image set accordingly.
    • See also updated CONTRIBUTING.md.
  7. Added a separate README.md for running install test containers locally (e.g. on own Intel MacBook, or EC2 AARCH64 instance). Could alternatively add this to CONTRIBUTING.md.

The GH workflows using QEMU are slow but they seem to work and are less of a security concern than using uraimo/run-on-arch-action.

Please let me know if any suggestions!

@tammy-baylis-swi tammy-baylis-swi requested a review from a team February 10, 2023 23:05
@tammy-baylis-swi
Copy link
Contributor Author

tammy-baylis-swi commented Feb 10, 2023

Oh no, Python 3.10 unit tests for "AO prod" failing 😑 Having a look

EDIT: Yay fixed

Copy link
Member

@raphael-theriault-swi raphael-theriault-swi left a comment

Choose a reason for hiding this comment

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

LGTM, probably worth getting another pair of eyes given the size though

@tammy-baylis-swi tammy-baylis-swi merged commit cbfd1ce into main Feb 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants