Skip to content

Add Android CoreCLR runtime tests#130766

Open
kotlarmilos wants to merge 5 commits into
mainfrom
kotlarmilos/android-coreclr-runtime-tests
Open

Add Android CoreCLR runtime tests#130766
kotlarmilos wants to merge 5 commits into
mainfrom
kotlarmilos/android-coreclr-runtime-tests

Conversation

@kotlarmilos

@kotlarmilos kotlarmilos commented Jul 15, 2026

Copy link
Copy Markdown
Member

Description

Add CoreCLR runtime innerloop coverage on the Android x64 emulator in runtime-androidemulator. The new job builds clr+libs, packages the Android runtime tests, and submits them to Ubuntu.2204.Amd64.Android.29.Open. Android CoreCLR live builds also exclude native archives already supplied by the CoreCLR shared framework, which avoids duplicate publish outputs while preserving the archives in NativeAOT runtime packs. The obsolete disabled Android ARM64 Mono runtime-test configuration is removed because .NET 11 mobile testing uses CoreCLR and NativeAOT.

Validation ran in https://dev.azure.com/dnceng-public/public/_build/results?buildId=1509777. The android-x64 Release AllSubsets_CoreCLR_RuntimeTests job passed with 75 completed Helix work items and zero failures.

Fixes #60128

Run the CoreCLR runtime innerloop on the Android x64 emulator in the extra-platforms pipeline.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: 4c3a31a8-4f37-4ee8-a3d3-eaeef79b1cab
Exclude native libraries already supplied by the Android CoreCLR shared framework while preserving them for NativeAOT runtime packs.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: 4c3a31a8-4f37-4ee8-a3d3-eaeef79b1cab
Copilot AI review requested due to automatic review settings July 15, 2026 10:22
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 10:23 — with GitHub Actions Inactive
@github-actions github-actions Bot added the area-Infrastructure-coreclr Only use for closed issues label Jul 15, 2026
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 10:23 — with GitHub Actions Inactive
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 5 pipeline(s).
10 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

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

This PR expands Android emulator CI coverage by adding a CoreCLR runtime-tests job to the runtime-androidemulator extra-platforms pipeline, and updates live build packaging to avoid duplicate native archive outputs when CoreCLR already provides the same archives via its shared framework on Android.

Changes:

  • Add an android_x64 CoreCLR runtime tests innerloop job to runtime-extra-platforms-androidemulator.
  • Exclude a set of Android native static archives from LibrariesRuntimeFiles for Android + CoreCLR (non-NativeAOT runtime pack) to prevent duplicate publish outputs.
Show a summary per file
File Description
eng/pipelines/extra-platforms/runtime-extra-platforms-androidemulator.yml Adds a new CoreCLR runtime-tests Helix submission job targeting the Android x64 emulator queue.
eng/liveBuilds.targets Excludes Android CoreCLR native archives already present in the CoreCLR shared framework to avoid duplicate runtime publish outputs (while preserving NativeAOT runtime pack behavior).

Copilot's findings

  • Files reviewed: 2/2 changed files
  • Comments generated: 0

Use one exclusion list for native archives shared by Apple and Android, with the Android crypto archive kept platform-specific.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: 4c3a31a8-4f37-4ee8-a3d3-eaeef79b1cab
Copilot AI review requested due to automatic review settings July 15, 2026 10:29
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 10:29 — with GitHub Actions Inactive
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 10:30 — with GitHub Actions Inactive
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 10:32 — with GitHub Actions Inactive
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 10:32 — with GitHub Actions Inactive
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 10:32 — with GitHub Actions Inactive

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.

Copilot's findings

  • Files reviewed: 2/2 changed files
  • Comments generated: 1

Comment thread eng/liveBuilds.targets
$(LibrariesNativeArtifactsPath)libbrotlienc.a" />

<ExcludeNativeLibrariesRuntimeFiles Condition="'$(TargetsAndroid)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR' and '$(BuildNativeAOTRuntimePack)' != 'true'"
Include="$(LibrariesNativeArtifactsPath)libSystem.Security.Cryptography.Native.Android.a" />

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why we don't include libSystem.Security.Cryptography.Native.Android.a for NativeAOT?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

libSystem.Security.Cryptography.Native.Android.a contains the Android native implementation used by managed crypto APIs. For CoreCLR, the archive is already present in the CoreCLR shared framework, so including the libraries-native copy creates a duplicate publish output.

NativeAOT does not consume the CoreCLR shared framework. Its only copy comes from LibrariesNativeArtifactsPath, so excluding it would remove the archive entirely and cause missing native symbols or cryptography failures.

Note ExcludeNativeLibrariesRuntimeFiles is exclusion

Delete the disabled Android ARM64 Mono runtime-test configuration now that mobile testing uses CoreCLR and NativeAOT.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: 4c3a31a8-4f37-4ee8-a3d3-eaeef79b1cab
Copilot AI review requested due to automatic review settings July 15, 2026 10:42

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.

Copilot's findings

  • Files reviewed: 3/3 changed files
  • Comments generated: 2

Comment thread eng/liveBuilds.targets
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Copilot AI review requested due to automatic review settings July 15, 2026 11:32
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 11:32 — with GitHub Actions Inactive
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 11:32 — with GitHub Actions Inactive
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 11:35 — with GitHub Actions Inactive
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 11:35 — with GitHub Actions Inactive
@kotlarmilos kotlarmilos temporarily deployed to copilot-pat-pool July 15, 2026 11:36 — with GitHub Actions Inactive

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.

Copilot's findings

  • Files reviewed: 3/3 changed files
  • Comments generated: 0 new

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

Labels

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Re-enable runtime tests running on Android arm64, when the installation timeout gets fixed

3 participants