[release/8.0-staging] Skip empty iOS NativeAOT Helix submission - #131209
Conversation
The servicing branch no longer has enabled iOS NativeAOT device tests, so preserve build coverage while skipping the empty Helix submission. Keep tvOS behavior unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 332b1207-8473-4b2b-8864-30da72ee4f6b
|
Azure Pipelines: Successfully started running 3 pipeline(s). 13 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
/azp run runtime-extra-platforms Note This command was posted by GitHub Copilot at the user's request. |
|
No pipelines are associated with this pull request. |
There was a problem hiding this comment.
Pull request overview
This PR updates the .NET 8 staging Azure Pipelines definitions to skip the libraries “Send to Helix” step for the iOS NativeAOT device leg when it would be empty (due to the device test projects being marked IgnoreForCI), while preserving the iOS NativeAOT build coverage and the tvOS Helix submission.
Changes:
- Update the libraries Helix submission condition in
runtime.ymlto excludeosGroup == ioswhile keeping the existing change-detection gating. - Add an explicit
osGroup != ioscondition to the iOS-like extra-platforms libraries Helix submission. - Add inline comments documenting that the iOS exclusion must be removed if iOS NativeAOT device tests are re-enabled.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| eng/pipelines/runtime.yml | Wrap the existing libraries Helix submission condition with ne(osGroup, 'ios') so tvOS still submits but iOS doesn’t. |
| eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml | Add condition: ne(variables['osGroup'], 'ios') to skip iOS libraries Helix submission in the iOS-like extra-platforms pipeline. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
/azp run runtime-extra-platforms |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
Azure Pipelines: Successfully started running 3 pipeline(s). 13 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
/azp run |
|
You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list. |
|
/azp run runtime,runtime-extra-platforms |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
|
/ba-g Unrelated failures |
acfd1e4
into
dotnet:release/8.0-staging
|
Thanks for approving @akoeplinger :) |
Fixes #130860
main PR N/A — servicing-only.
mainhas theExists(...)guards (#121927) and its iOS device tests are still enabled.Description
#130473 marked the only two test projects this leg selects as
IgnoreForCI, since the servicing test infra isn't being updated for newer macOS:iOS.Device.Aot.TestiOS.Device.ExportManagedSymbols.TestThat suppresses
ArchiveTests/_CopyTestArchive, so the leg no longer producesartifacts/helix/tests— and release/8.0'ssendtohelix-mobile.targets:87enumerates that directory unguarded:This keeps the iOS NativeAOT build and skips only its now-empty
Send to Helixstep. tvOS is untouched. Both call sites are updated —runtime.ymlduplicates the block, so fixing only the extra-platforms template would leave theruntimedefinition red.Backporting just the
Exists(...)guard doesn't work: it trades MSB4184 forNo helix work itemsatsendtohelixhelp.proj:304, since the leg still has nothing to submit.Customer Impact
None to customers — CI infrastructure only, no shipping bits change.
The leg currently fails on every rolling build and every PR touching libraries or coreclr, which keeps .NET 8 servicing CI red (
blocking-clean-ci) and buries real regressions in noise.Regression
Yes, from #130473 — which correctly disabled unrunnable device tests but left the Helix submission leg scheduled with nothing to send. CI-only; no shipped code involved.
Testing
Send to Helixstep results on this PR:ios-arm64 Release AllSubsets_NativeAOTtvos-arm64 Release AllSubsets_NativeAOTios-arm64 Release AllSubsets_NativeAOTtvos-arm64 Release AllSubsets_NativeAOTAll four parent jobs succeeded, so iOS build coverage is retained. The tvOS step log confirms a real submission (1 work item, 3.3M payload, Helix job completing with 2 finished work items) — it isn't silently skipping too.
Also verified locally with a harness importing the real
sendtohelix-mobile.targetsat the #130473 commit, which reproduces the MSB4184 and the guard-only follow-on failure. The equivalent leg on release/10.0 is green, so no change is needed elsewhere.Risk
Low.
osGroup, so only the iOS NativeAOT leg changes; verified in CI rather than assumed.librariesContainsChange/coreclrContainsChange/isRollingBuildgating is preserved, just wrapped inand(...).conditionhook ineng/pipelines/libraries/helix.ymlinstead of loosening shared Helix behavior for all mobile lanes.Both call sites carry a comment to remove the exclusion if these tests are re-enabled.
Note
This pull request description was generated with GitHub Copilot.