Skip to content

Enable Linux ARM64 builds and packaging - #2107

Merged
baijumeswani merged 11 commits into
mainfrom
baijumeswani/linux-aarch64
May 20, 2026
Merged

Enable Linux ARM64 builds and packaging#2107
baijumeswani merged 11 commits into
mainfrom
baijumeswani/linux-aarch64

Conversation

@baijumeswani

@baijumeswani baijumeswani commented Apr 29, 2026

Copy link
Copy Markdown
Collaborator

This PR enables Linux ARM64 builds for the C API tarball, Python wheels, and NuGet packages.

Addresses microsoft/foundry-local#673 and other partner asks.

@baijumeswani
baijumeswani force-pushed the baijumeswani/linux-aarch64 branch from 35b6887 to 0b27915 Compare May 5, 2026 17:14
@baijumeswani
baijumeswani force-pushed the baijumeswani/linux-aarch64 branch from 0b27915 to d343883 Compare May 15, 2026 05:47
@baijumeswani
baijumeswani marked this pull request as ready for review May 19, 2026 18:24
@baijumeswani
baijumeswani requested a review from a team as a code owner May 19, 2026 18:24
Copilot AI review requested due to automatic review settings May 19, 2026 18:24
@baijumeswani baijumeswani changed the title Add linux-aarch64 support Enable Linux ARM64 builds and packaging May 19, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds Linux ARM64 (linux-aarch64) support across build, packaging, validation, and publishing pipelines to address microsoft/foundry-local#673.

Changes:

  • Add linux-arm64 to NuGet packaging and custom nuspec generation inputs.
  • Introduce manylinux aarch64 Docker support and adjust CI steps to select the correct Dockerfile/pool.
  • Extend Python wheel manylinux repair logic and enable ARM64 packaging/validation stages.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tools/nuget/generate_nuspec_for_native_nuget.py Adds linux-arm64 RID to native NuGet artifact inclusion.
tools/nuget/generate_nuspec_for_custom_nuget.py Adds linux-arm64 input directory wiring for custom nuspec generation.
tools/ci_build/github/linux/docker/manylinux/scripts/install_deps.sh Skips missing Python executables in base images.
tools/ci_build/github/linux/docker/manylinux/Dockerfile.manylinux2_28_cpu_aarch64 New manylinux aarch64 Docker image definition for ARM64 builds.
src/python/CMakeLists.txt Chooses auditwheel input wheel glob based on CPU architecture.
.pipelines/stages/py-validation-stage.yml Adds optional linux arm64 CPU validation stage.
.pipelines/stages/py-packaging-stage.yml Adds optional linux arm64 CPU packaging stage.
.pipelines/stages/nuget-validation-stage.yml Adds optional linux arm64 CPU NuGet validation stage.
.pipelines/stages/nuget-packaging-stage.yml Plumbs linux arm64 CPU enablement into NuGet packaging job template.
.pipelines/stages/jobs/steps/capi-linux-step.yml Selects aarch64 Dockerfile when arch=arm64.
.pipelines/stages/jobs/py-validation-job.yml Skips UsePythonVersion on linux-arm64 agents.
.pipelines/stages/jobs/py-packaging-job.yml Skips UsePythonVersion on linux-arm64 agents.
.pipelines/stages/jobs/nuget-packaging-job.yml Downloads/extracts linux-arm64 artifacts and validates expected native libs exist.
.pipelines/stages/jobs/custom-nuget-packaging-job.yml Downloads linux-arm64 artifacts and passes them to custom nuspec generator.
.pipelines/stages/jobs/capi-packaging-job.yml Switches linux arm64 pool name and skips UsePythonVersion on linux-arm64.
.pipelines/stages/capi-packaging-stage.yml Adds optional linux arm64 CPU C API packaging stage.
.pipelines/pypl-publishing.yml Enables linux arm64 CPU packaging/validation by default in publishing pipeline.
.pipelines/nuget-publishing.yml Enables linux arm64 CPU packaging/validation by default in publishing pipeline.
.github/workflows/linux-cpu-arm64-build.yml Adds C# tests and example builds to ARM64 Linux GitHub Actions workflow.

Comment thread src/python/CMakeLists.txt Outdated
Comment thread src/python/CMakeLists.txt Outdated
Comment thread .pipelines/stages/jobs/nuget-packaging-job.yml
Comment thread .pipelines/stages/jobs/py-validation-job.yml
Comment thread .pipelines/stages/capi-packaging-stage.yml Outdated
Comment thread .pipelines/stages/jobs/nuget-packaging-job.yml
Comment thread .pipelines/stages/nuget-packaging-stage.yml
Comment thread .pipelines/stages/nuget-validation-stage.yml Outdated
@baijumeswani
baijumeswani merged commit 21192da into main May 20, 2026
80 of 82 checks passed
@baijumeswani
baijumeswani deleted the baijumeswani/linux-aarch64 branch May 20, 2026 10:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants