Skip to content

ci(sdk_v2): add Android C++ core build pipeline - #1068

Draft
sheetalarkadam wants to merge 1 commit into
mainfrom
shekadam/android-native-pipeline
Draft

ci(sdk_v2): add Android C++ core build pipeline#1068
sheetalarkadam wants to merge 1 commit into
mainfrom
shekadam/android-native-pipeline

Conversation

@sheetalarkadam

Copy link
Copy Markdown
Contributor

Combines the Android native CI pipeline (#954) with the versioned GenAI Android AAR cache fix (#960) it was stacked on, into a single change targeting main so it can be reviewed as one unit. Supersedes #954 and #960.

Pipeline (.pipelines/v2/templates)

  • Adds Android build stages to the native pipeline, publishing cpp-native-android-<abi> artifacts (arm64-v8a, x86_64).
  • Build-only. Emulator tests are opt-in via runEmulatorTests on the x86_64 leg.
  • Not wired into the pack stages. Neither the NuGet package nor the C++ SDK tgz has an Android consumer today; Android's differing dependency origins make packaging a separate design question.
  • All four .so files are staged (libfoundry_local.so, libonnxruntime.so, libonnxruntime-genai.so, libmat.so), unlike desktop legs which stage only libfoundry_local.so. Desktop consumers get ORT/GenAI out of band (pip / NuGet); an Android consumer has no such channel. A readelf DT_NEEDED-closure check fails the stage if a staged library needs a build-produced .so that wasn't staged.

GenAI AAR cache (sdk_v2/cpp)

  • Scopes both the archive and the extracted tree by version, so a version bump fetches its own copy and cannot collide with a stale cache (which would otherwise silently disagree with the pinned version).
  • Newer GenAI versions target libmat.so.

Validation

Both Android .so artifacts build cleanly from this branch's tree via the canonical build.py (arm64-v8a and x86_64, Release).

Combines the Android native CI pipeline (#954) with the versioned GenAI
Android AAR cache fix (#960) it depended on, into a single change for review.

Pipeline (.pipelines/v2/templates):
- Add Android build stages to the native pipeline, publishing
  cpp-native-android-<abi> artifacts (arm64-v8a, x86_64).
- Build-only; emulator tests are opt-in via runEmulatorTests on the x86_64 leg.
- Stage all four .so files (libfoundry_local, libonnxruntime,
  libonnxruntime-genai, libmat); a readelf DT_NEEDED-closure check fails the
  stage if a staged library needs a build-produced .so that wasn't staged.

GenAI AAR cache (sdk_v2/cpp):
- Scope both the archive and the extracted tree by version so a version bump
  fetches its own copy and cannot collide with a stale cache.
- Newer GenAI versions target libmat.so.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a5c2fc55-3b22-46d7-a22c-63beaa5720ae
@vercel

vercel Bot commented Sep 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
foundry-local Ready Ready Preview Sep 2, 2026 9:32pm UTC

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant