Add Linux arm64 support to the SDK v2 packaging pipelines#894
Open
baijumeswani wants to merge 5 commits into
Open
Add Linux arm64 support to the SDK v2 packaging pipelines#894baijumeswani wants to merge 5 commits into
baijumeswani wants to merge 5 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
There was a problem hiding this comment.
Pull request overview
Adds native CPU-only Linux ARM64 support across SDK v2 build, test, and packaging workflows.
Changes:
- Adds ARM64 native builds and C++, C#, Python, and JavaScript test stages.
- Packages Linux ARM64 binaries in C++ archives, NuGet, Python wheels, and npm tarballs.
- Updates runtime detection, dependency selection, WebGPU fallback behavior, tests, and documentation.
Reviewed changes
Copilot reviewed 30 out of 30 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
sdk_v2/python/test/unit/test_lib_loader.py |
Tests ARM64 platform detection. |
sdk_v2/python/test/unit/test_build_backend.py |
Tests dependency-pin rewriting. |
sdk_v2/python/src/foundry_local_sdk/_native/lib_loader.py |
Detects Linux ARM64 payloads. |
sdk_v2/python/pyproject.toml |
Adds CPU-only ARM64 dependencies. |
sdk_v2/python/_build_backend/__init__.py |
Rewrites plain ORT package pins. |
sdk_v2/js/script/install-native.cjs |
Supports ARM64 and fails on missing payloads. |
sdk_v2/cpp/triplets/arm64-linux.cmake |
Defines the ARM64 vcpkg triplet. |
sdk_v2/cpp/test/internal_api/webgpu_ep_bootstrapper_test.cc |
Adds WebGPU bootstrapper tests. |
sdk_v2/cpp/test/CMakeLists.txt |
Registers the new C++ test file. |
sdk_v2/cpp/src/ep_detection/webgpu_ep_bootstrapper.h |
Documents ARM64 WebGPU behavior. |
sdk_v2/cpp/src/ep_detection/webgpu_ep_bootstrapper.cc |
Gracefully disables unavailable ARM64 WebGPU. |
sdk_v2/cpp/nuget/test_pack.py |
Tests NuGet staging and RID mapping. |
sdk_v2/cpp/nuget/pack.py |
Stages the Linux ARM64 runtime. |
sdk_v2/cpp/nuget/Microsoft.AI.Foundry.Local.Runtime.nuspec |
Documents the ARM64 payload. |
sdk_v2/cpp/cmake/FindOnnxRuntimeGenAI.cmake |
Selects ARM64 GenAI binaries. |
sdk_v2/cpp/cmake/FindOnnxRuntime.cmake |
Selects CPU-only ARM64 ORT binaries. |
.pipelines/v2/templates/steps-test-python.yml |
Supports system Python on ARM64 agents. |
.pipelines/v2/templates/steps-test-js.yml |
Enables Linux ARM64 JavaScript tests. |
.pipelines/v2/templates/steps-pack-nuget.yml |
Includes the ARM64 native artifact. |
.pipelines/v2/templates/steps-pack-js.yml |
Merges the ARM64 npm prebuild. |
.pipelines/v2/templates/steps-pack-cpp-sdk.yml |
Produces an ARM64 C++ archive. |
.pipelines/v2/templates/steps-build-python.yml |
Supports ARM64 system Python builds. |
.pipelines/v2/templates/steps-build-linux.yml |
Parameterizes Linux CPU architecture. |
.pipelines/v2/templates/steps-build-js.yml |
Builds and stages ARM64 Node addons. |
.pipelines/v2/templates/stages-python.yml |
Adds ARM64 Python build and test stages. |
.pipelines/v2/templates/stages-js.yml |
Adds ARM64 JavaScript build and test stages. |
.pipelines/v2/templates/stages-cs.yml |
Adds ARM64 C# testing. |
.pipelines/v2/templates/stages-build-native.yml |
Adds native ARM64 build and packaging inputs. |
.pipelines/v2/sdk_v2-pipeline-plan.md |
Documents the expanded pipeline matrix. |
.pipelines/v2/sdk_v2-js-pipeline-plan.md |
Documents ARM64 JavaScript packaging. |
prathikr
reviewed
Jul 21, 2026
prathikr
left a comment
Collaborator
There was a problem hiding this comment.
Can you add to the PR description all the new unit tests that have been introduced and their purposes?
prathikr
approved these changes
Jul 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds first-class Linux arm64 support across the SDK v2 build, test, and packaging pipelines. Every package format the pipeline already produces (C++ tgz, Runtime NuGet, Python wheel, npm tarball) now includes a
linux-arm64payload, built and tested natively on theonnxruntime-linux-ARM64-CPU-2019pool.Initial Linux ARM64 support is CPU-only.