Skip to content

[Backport][v1.75.x][Python] Build manylinux aarch64 without cross-compilation#40636

Merged
sergiitk merged 1 commit intogrpc:v1.75.xfrom
sreenithi:backport-1.75-update_manylinux_aarch64_build
Sep 8, 2025
Merged

[Backport][v1.75.x][Python] Build manylinux aarch64 without cross-compilation#40636
sergiitk merged 1 commit intogrpc:v1.75.xfrom
sreenithi:backport-1.75-update_manylinux_aarch64_build

Conversation

@sreenithi
Copy link
Contributor

Backport of #40354 to v1.75.x.

This PR does the following:

  • Updates the base docker image used by the manylinux2014_aarch64 artifact build from a dockcross image that uses cross-compilation to a simple pypa image that doesn't require cross-compilation
  • Hence switch the manylinux2014_aarch64 build to run in an ARM64 machine without cross compiling.
    • We already have a 'Distribution Tests Python Linux Arm64' job that runs on an ARM64 machine to build only musllinux_aarch64 targets.
    • Updating the build process so that the manylinux2014_aarch64 target is also now built as part of the 'Distribution Tests Python Linux Arm64' job instead of the 'Distribution Tests Python Linux' job.

This change cuts the execution time of the 'Distribution Tests Python Linux' job significantly effectively reducing the total runtime by over 55% as shown below:

Given that the presubmit jobs building only a small subset of targets show such time improvement, the release job which currently builds many more aarch64 artifacts will also show significant execution time improvement going forward.

This PR does the following:
- Updates the base docker image used by the manylinux2014_aarch64 artifact build from a dockcross image that uses cross-compilation to a simple pypa image that doesn't require cross-compilation
- Hence switch the manylinux2014_aarch64 build to run in an ARM64 machine without cross compiling.
  - We already have a '**Distribution Tests Python Linux Arm64**' job that runs on an ARM64 machine to build only `musllinux_aarch64` targets.
  - Updating the build process so that the manylinux2014_aarch64 target is also now built as part of the '**Distribution Tests Python Linux Arm64**' job instead of the '**Distribution Tests Python Linux**' job.

This change cuts the execution time of the '**Distribution Tests Python Linux**' job significantly effectively reducing the total runtime by over 55% as shown below:
- Previously the presubmit runs usually take about 75-90 minutes of runtime: [Example run from grpc#40317](https://btx.cloud.google.com/invocations/147e002e-12da-441f-a744-630233725563/targets)
- Now the presubmit run-time has reduced to about 30-40 minutes: [Test run from this PR](https://btx.cloud.google.com/invocations/93602c73-228b-48e1-9bcc-059f51479887/targets)

Given that the presubmit jobs building only a small subset of targets show such time improvement, the release job which currently builds many more aarch64 artifacts will also show significant  execution time improvement going forward.

Closes grpc#40354

PiperOrigin-RevId: 798104586
@sreenithi sreenithi self-assigned this Sep 8, 2025
@sreenithi sreenithi requested a review from sergiitk as a code owner September 8, 2025 07:01
@sreenithi sreenithi added the release notes: no Indicates if PR should not be in release notes label Sep 8, 2025
@sergiitk sergiitk merged commit e6db475 into grpc:v1.75.x Sep 8, 2025
60 checks passed
sreenithi added a commit to sreenithi/grpc that referenced this pull request Sep 9, 2025
…pilation (grpc#40636)

Backport of grpc#40354 to v1.75.x.
---
This PR does the following:
- Updates the base docker image used by the manylinux2014_aarch64
artifact build from a dockcross image that uses cross-compilation to a
simple pypa image that doesn't require cross-compilation
- Hence switch the manylinux2014_aarch64 build to run in an ARM64
machine without cross compiling.
- We already have a '**Distribution Tests Python Linux Arm64**' job that
runs on an ARM64 machine to build only `musllinux_aarch64` targets.
- Updating the build process so that the manylinux2014_aarch64 target is
also now built as part of the '**Distribution Tests Python Linux
Arm64**' job instead of the '**Distribution Tests Python Linux**' job.

This change cuts the execution time of the '**Distribution Tests Python
Linux**' job significantly effectively reducing the total runtime by
over 55% as shown below:
- Previously the presubmit runs usually take about 75-90 minutes of
runtime: [Example run from
- Now the presubmit run-time has reduced to about 30-40 minutes: [Test
run from this
PR](https://btx.cloud.google.com/invocations/93602c73-228b-48e1-9bcc-059f51479887/targets)

Given that the presubmit jobs building only a small subset of targets
show such time improvement, the release job which currently builds many
more aarch64 artifacts will also show significant execution time
improvement going forward.
@sergiitk sergiitk added this to the Python 3.14 support milestone Sep 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants