Skip to content

[Task]: Investigate native ARM runners for Python aarch64 wheels #39620

Description

@bvolpato

What needs to happen?

Python wheel workflow currently builds Linux aarch64 wheel on an ubuntu-22.04 x64 GitHub-hosted runner through QEMU.

In a representative PR run, aarch64 Python 3.14 leg took 91 minutes and determined almost all workflow latency. Other active legs took 5 to 26 minutes:

GitHub provides standard ubuntu-24.04-arm runners for public repositories. Other Apache projects already use them for native wheel builds. For example, Arrow Nanoarrow runs cibuildwheel on ubuntu-24.04-arm; a recent Linux ARM64 job completed successfully in about 11 minutes:

Could someone familiar with Beam Infra or Apache runner constraints confirm whether this wheel leg can use ubuntu-24.04-arm, or whether current QEMU path is intentional?

A bounded experiment could switch only aarch64 matrix row to native ARM, use CIBW_ARCHS_LINUX=auto, and skip QEMU for that row. Validation should compare wheel platform tags, auditwheel show, installation/import smoke tests, existing wheel tests, and wall-clock time against current QEMU job.

Issue Priority

Priority: 2 (default / most normal work should be filed as P2)

Issue Components

  • Component: Python SDK
  • Component: Java SDK
  • Component: Go SDK
  • Component: Typescript SDK
  • Component: IO connector
  • Component: Beam YAML
  • Component: Beam examples
  • Component: Beam playground
  • Component: Beam katas
  • Component: Website
  • Component: Infrastructure
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Prism Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions