Skip to content

[ci] Add MAUI full R2R android-arm Helix test - #12020

Merged
jonathanpeppers merged 12 commits into
mainfrom
android-add-more-coreclr-testing
Aug 21, 2026
Merged

jonathanpeppers merged 12 commits into
mainfrom
android-add-more-coreclr-testing

Conversation

@simonrozsival

@simonrozsival simonrozsival commented Jul 8, 2026 •

Copy link
Copy Markdown
Member

Summary

  • build the MAUI template with CoreCLR full ReadyToRun for android-arm
  • set _MauiPublishReadyToRunPartial=false and assert no partial R2R inputs remain
  • run the APK on the windows.11.amd64.android-armel.open Helix queue

Closes #12026

Validation

  • parsed edited YAML files
  • git diff --check

simonrozsival and others added 6 commits July 8, 2026 11:15
Build the MAUI template with CoreCLR full ReadyToRun for android-arm, disable MAUI partial R2R with _MauiPublishReadyToRunPartial=false, and run the APK on the windows.11.amd64.android-armel.open Helix queue.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run MAUI CoreCLR R2R coverage across android-arm64 and android-arm, with default MAUI R2R settings and _MauiPublishReadyToRunPartial=false full-R2R settings. Rename the helper template and avoid the PowerShell read-only Error variable.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Avoid Java keyword package segments in the default R2R matrix cases by using baseline package suffixes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Invoke helixpublish.proj with the prepared repo-local dotnet msbuild instead of eng/common/msbuild.ps1, which requires tools.dotnet in global.json and fails in this pipeline.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add Microsoft.DotNet.Helix.Sdk to global.json so dotnet msbuild can resolve eng/common/helixpublish.proj when submitting MAUI R2R APK work items.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy Android SDK platform-tools into each MAUI R2R Helix payload and run the payload-local adb.exe instead of assuming adb is on the Helix queue PATH.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@simonrozsival
simonrozsival marked this pull request as ready for review July 9, 2026 07:07
Copilot AI review requested due to automatic review settings July 9, 2026 07:07

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

Adds CI validation for MAUI template apps built with CoreCLR + ReadyToRun and executed on Android Helix queues, including a β€œfull R2R” configuration that asserts no partial-R2R inputs remain.

Changes:

  • Pin Microsoft.DotNet.Helix.Sdk in global.json so eng/common/helixpublish.proj can restore/build reliably.
  • Introduce a new pipeline template to (1) clone the MAUI template into per-case matrix projects, (2) build APKs with R2R settings, (3) package an adb-driven Helix work item, and (4) submit/runs it via helixpublish.proj.
  • Invoke the new template from both internal and public AzDO pipelines in the MAUI integration job.
Show a summary per file
File Description
global.json Adds a pinned MSBuild SDK version for Microsoft.DotNet.Helix.Sdk.
build-tools/automation/yaml-templates/run-maui-r2r-helix-matrix.yaml New template to configure MAUI R2R matrix projects, build APKs, package Helix payload, and submit to Helix queues.
build-tools/automation/azure-pipelines.yaml Wires the new MAUI R2R Helix matrix template into the MAUI integration job (internal pipeline).
build-tools/automation/azure-pipelines-public.yaml Wires the new MAUI R2R Helix matrix template into the MAUI integration job (public pipeline).

Copilot's findings

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

simonrozsival and others added 4 commits July 9, 2026 10:08
Use a repo-owned Helix project so each MAUI R2R scenario sets a descriptive Azure Pipelines test run and work item name. Download Helix result files into the MAUI logs artifact and upload scenario, device, package, and full logcat diagnostics from each work item.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove DownloadFilesFromResults=**/* from the MAUI R2R Helix work item. The Helix SDK treats it as part of a Windows path while downloading result files, causing a successful work item to fail the submission step.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@simonrozsival
simonrozsival marked this pull request as draft July 14, 2026 10:29
@simonrozsival

Copy link
Copy Markdown
Member Author

This is now blocked by dotnet/runtime#130564 - it needs to be merged and flow to our repo via the VMR

@jonathanpeppers jonathanpeppers left a comment

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.

Do we need helix here?

In VS, I created the latest x86 emulator it would allow:

Image

(VS could be buggy, there could be newer ones)

This emulator should be able to run an android-arm app:

> adb shell getprop | grep armeabi-v7a
[ro.product.cpu.abilist]: [x86,armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [x86,armeabi-v7a,armeabi]

Which should work on our existing emulator test lanes that run on x64.

@simonrozsival

Copy link
Copy Markdown
Member Author

Do we need helix here?

I will revisit this once dotnet/runtime#130564 flows to our repo

@simonrozsival

Copy link
Copy Markdown
Member Author

@copilot resolve the merge conflicts in this pull request

…clr-testing

# Conflicts:
#	global.json

Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>

Copilot AI commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

Resolved the merge conflict in global.json and pushed merge commit a5a8e92a.

Cache the process handle before waiting so Windows PowerShell populates ExitCode when output streams are redirected.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@simonrozsival
simonrozsival marked this pull request as ready for review August 20, 2026 09:34
@simonrozsival

Copy link
Copy Markdown
Member Author

/review

@github-actions

github-actions Bot commented Aug 20, 2026 •

Copy link
Copy Markdown
Contributor

βœ… Android PR Reviewer completed successfully!

Generated by Android PR Reviewer for #12020

@github-actions github-actions Bot 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.

Reviewed the MAUI CoreCLR ReadyToRun Helix matrix and its pipeline integration. I left one inline error-handling finding: a failed app launch bypasses logcat collection, which makes the new runtime test unnecessarily difficult to diagnose. The latest Azure DevOps build is still in progress; no failures were present when checked.

Generated by Android PR Reviewer for #12020 Β· gpt56 Β· 141.3 AIC Β· βŒ– 17.1 AIC Β· ⊞ 25.7K
Comment /review to run again

"%ADB%" shell pm path $packageName > "%UPLOAD_DIR%\pm-path-${{ testCase.name }}.log"
"%ADB%" shell dumpsys package $packageName > "%UPLOAD_DIR%\dumpsys-package-${{ testCase.name }}.log"
"%ADB%" shell logcat -c
"%ADB%" shell monkey -p $packageName -c android.intent.category.LAUNCHER 1 || exit /b 1

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.

⚠️ Error handling: A nonzero monkey result exits before the logcat capture and uninstall below, so launch failures lose the diagnostics needed to distinguish an activity-resolution problem from an immediate app/runtime failure. Route this branch through the same failure cleanup used for pidof so the work item always uploads logcat before returning failure.

@simonrozsival simonrozsival added the ready-to-review This PR is ready to review/merge, I think any CI failures are just flaky (ignorable). label Aug 21, 2026
@jonathanpeppers
jonathanpeppers merged commit 2aceefd into main Aug 21, 2026
44 checks passed
@jonathanpeppers
jonathanpeppers deleted the android-add-more-coreclr-testing branch August 21, 2026 15:59
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

ready-to-review This PR is ready to review/merge, I think any CI failures are just flaky (ignorable).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CoreCLR] android-arm MAUI R2R app crashes during startup in PEDecoder::CheckCorHeader

4 participants