Rename RunOnAndroid CI lane to match its Linux pool - #34866
Conversation
Agent-Logs-Url: https://github.com/dotnet/maui/sessions/98ad92cf-5286-4529-b3ce-39ddde147c1c Co-authored-by: sbomer <787361+sbomer@users.noreply.github.com>
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 34866Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 34866" |
There was a problem hiding this comment.
Pull request overview
Renames the Azure Pipelines CI integration test lane for RunOnAndroid so the lane name reflects that it runs on the Linux Android pool, improving pipeline surface clarity without changing execution behavior.
Changes:
- Renamed the lane from
mac_runandroid_teststolinux_runandroid_testsineng/pipelines/ci.yml.
Comments suppressed due to low confidence (1)
eng/pipelines/ci.yml:308
- The
if/elsehere sets the samepoolvalue in both branches, so the conditional can be removed andpool: ${{ parameters.AndroidPoolLinux }}specified once (also avoids the trailing whitespace on the${{ else }}:line).
- name: linux_runandroid_tests
${{ if eq(variables['Build.DefinitionName'], 'maui-pr') }}:
pool: ${{ parameters.AndroidPoolLinux }}
${{ else }}:
pool: ${{ parameters.AndroidPoolLinux }}
timeout: 240
|
/review -b feature/refactor-copilot-yml |
|
/review -b feature/enhanced-reviewer -p android |
MauiBot
left a comment
There was a problem hiding this comment.
AI Review Summary
@copilot — new AI review results are available based on this last commit:
04913e6.
Rename runandroid CI lane to linux pool name To request a fresh review after new comments or commits, comment/review rerun.
Review Sessions — click to expand
Gate — Test Before & After Fix
Gate Result: ⚠️ SKIPPED
No tests were detected in this PR.
Recommendation: Add tests to verify the fix using the write-tests-agent.
Pre-Flight — Context & Validation
Issue: #34866 - No linked issue found; PR itself tracks the pipeline naming cleanup
PR: #34866 - Rename RunOnAndroid CI lane to match its Linux pool
Platforms Affected: android (CI integration-test lane)
Files Changed: 1 implementation/pipeline, 0 test
Key Findings
- PR changes
eng/pipelines/ci.ymlonly, renaming the RunOnAndroid integration-test job frommac_runandroid_teststolinux_runandroid_tests. - The job already uses
AndroidPoolLinux; pool selection, timeout, andtestCategory: RunOnAndroidare unchanged. - No inline review comments were found through the public GitHub API.
ghCLI was unavailable because this environment has no GitHub authentication token. - Gate was already completed by the caller and skipped because no tests were detected in the PR.
Code Review Summary
Verdict: LGTM
Confidence: high
Errors: 0 | Warnings: 0 | Suggestions: 1
Key code review findings:
- 💡
eng/pipelines/ci.yml: themaui-prandelsepool branches both resolve to${{ parameters.AndroidPoolLinux }}; redundant but pre-existing/out of scope for the PR's minimal rename.
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| PR | PR #34866 | Rename RunOnAndroid integration-test job from mac_runandroid_tests to linux_runandroid_tests |
eng/pipelines/ci.yml |
Original PR |
Code Review — Deep Analysis
Code Review — PR #34866
Independent Assessment
What this changes: Renames the AzDO integration-test job from mac_runandroid_tests to linux_runandroid_tests in eng/pipelines/ci.yml (line 303). Pool, timeout, and test category are untouched.
Inferred motivation: The mac_ prefix was a stale misnomer. The job already runs on AndroidPoolLinux (MAUI-DNCENG / 1ESPT-Ubuntu22.04), almost certainly since commit 0d4220b391 ("[ci] Run android on MAUI-Dnceng") — the name was just never updated.
Reconciliation with PR Narrative
Author claims: "No functional pipeline changes. RunOnAndroid continues to run on AndroidPoolLinux."
Agreement: Confirmed. The diff is exactly one string substitution. The name field feeds internal AzDO identifiers (job ID, test-run title, log artifact name) but is not referenced by any other file in the repository.
Findings
💡 Suggestion — Redundant if/else on pool (pre-existing, out of scope)
ci.yml lines 304–307: both the maui-pr and else branches resolve to ${{ parameters.AndroidPoolLinux }}, making the conditional a no-op. Not introduced by this PR — worth a future cleanup pass.
Devil's Advocate
Could renaming break a required AzDO status check? AzDO check names exposed to GitHub branch protection follow <pipeline> / <stage> / <job>. If maui-pr / IntegrationTests / mac_runandroid_tests is a required check, this rename would orphan it. Investigation found: no file in the repo references the old name outside ci.yml itself; the GitHub branch-protection API was unavailable through unauthenticated gh, but repository search found no Android-scoped required-check reference. Branch protection is expected to gate on stage-level names, not individual job names. Risk assessed as low.
Verdict: LGTM
Confidence: high
Summary: One-line name correction — aligns a stale mac_ prefix with the actual Linux execution environment. No behavioral change, no other consumers of the old name, no test-category or pool modifications.
Fix — Analysis & Comparison
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| 1 | try-fix | Keep linux_runandroid_tests and collapse redundant identical AndroidPoolLinux pool branches to a direct pool: assignment |
✅ Pass | 1 file | Directly improves the PR by preserving the rename and removing a no-op branch |
| 2 | try-fix | Change integration-test testRunTitle to $(testIdentifier) so the Tests tab shows semantic category/test names |
✅ Pass | 1 file | Broader template change; useful but affects all integration-test jobs |
| 3 | try-fix | Add os: linux to AndroidPoolLinux and use OS-agnostic runandroid_tests job id |
✅ Pass | 1 file | Architecturally clean but diverges from existing OS-prefixed lane naming |
| 4 | try-fix | Correct AI-facing integration-test docs/skill metadata from macOS/MacOSPool to Linux/AndroidPoolLinux | ✅ Pass | 2 files | Companion cleanup; does not replace the PR's lane rename |
| PR | PR #34866 | Rename mac_runandroid_tests to linux_runandroid_tests |
1 file | Original PR |
Cross-Pollination
| Model | Round | New Ideas? | Details |
|---|---|---|---|
| claude-sonnet-4.6 | 1 | Yes | Candidate 1: collapse redundant pool conditional along with PR rename |
| claude-sonnet-4.6 | 1 | Yes | Candidate 2: semantic test-run titles via $(testIdentifier) |
| claude-sonnet-4.6 | 1 | Yes | Candidate 3: pool-level os: linux metadata plus OS-agnostic job id |
| claude-sonnet-4.6 | 1 | Yes | Candidate 4: correct AI-facing integration-test docs and skill metadata |
Exhausted: Yes
Selected Fix: Candidate #1 — It is the best direct replacement because it preserves the PR's intended linux_runandroid_tests rename and removes a misleading no-op pool conditional without changing shared templates, docs, or naming philosophy. Candidate #4 is a worthwhile companion cleanup, but not a standalone replacement. Candidate #2 and #3 passed static checks but have broader blast radius than the PR.
Report — Final Recommendation
Comparative Report — PR #34866
Candidates reviewed
| Rank | Candidate | Regression result | Assessment |
|---|---|---|---|
| 1 | pr |
Gate skipped; no tests detected | Best overall. Narrowly renames mac_runandroid_tests to linux_runandroid_tests, matching the existing AndroidPoolLinux pool without broadening the change. |
| 1 | pr-plus-reviewer |
Gate skipped; no tests detected | Equivalent to pr; the expert reviewer found no actionable feedback to apply. |
| 2 | try-fix-1 |
Pass | Strong direct improvement: keeps the PR rename and removes a redundant conditional where both branches select AndroidPoolLinux. It is safe-looking, but it changes more YAML than required for the PR's specific fix. |
| 3 | try-fix-4 |
Pass | Useful companion documentation cleanup for AI-facing integration-test guidance, but it does not replace the CI lane rename. |
| 4 | try-fix-3 |
Pass | Architecturally coherent, but switching to OS-agnostic runandroid_tests diverges from the repository's existing OS-prefixed lane naming convention. |
| 5 | try-fix-2 |
Pass | Useful broader improvement to test-run titles, but it affects all integration-test jobs and is outside the narrow PR scope. |
Expert review outcome
The expert reviewer found no actionable inline findings against the PR diff, so pr-plus-reviewer is identical to pr. The raw inline findings file is an empty array.
Decision
Winner: pr. The PR fix precisely addresses the misleading Android lane name while preserving execution behavior. Although try-fix-1 passed its static regression check and is a reasonable follow-up cleanup, its redundant-conditional removal is not required to fix the issue and expands the change surface beyond the submitted PR.
Notes
The gate was skipped because no tests were detected. Consider asking the author to add lightweight validation for CI lane naming if this area has an existing testable pipeline/template validation surface.
Future Action — review latest findings
No alternative fix was selected for this run. Review the session findings and CI results before merging.
The RunOnAndroid lane in `eng/pipelines/ci.yml` still used a `mac_`
prefix even though it now runs on the Linux Android pool. This updates
the lane name so the pipeline surface reflects the actual execution
environment.
- **Pipeline naming**
- Renamed the integration test lane from `mac_runandroid_tests` to
`linux_runandroid_tests`
- Left pool selection, timeout, and test category unchanged
- **Behavior**
- No functional pipeline changes
- `RunOnAndroid` continues to run on `AndroidPoolLinux`
```yaml
- name: linux_runandroid_tests
pool: ${{ parameters.AndroidPoolLinux }}
timeout: 240
testCategory: RunOnAndroid
```
---------
The RunOnAndroid lane in `eng/pipelines/ci.yml` still used a `mac_`
prefix even though it now runs on the Linux Android pool. This updates
the lane name so the pipeline surface reflects the actual execution
environment.
- **Pipeline naming**
- Renamed the integration test lane from `mac_runandroid_tests` to
`linux_runandroid_tests`
- Left pool selection, timeout, and test category unchanged
- **Behavior**
- No functional pipeline changes
- `RunOnAndroid` continues to run on `AndroidPoolLinux`
```yaml
- name: linux_runandroid_tests
pool: ${{ parameters.AndroidPoolLinux }}
timeout: 240
testCategory: RunOnAndroid
```
---------
The RunOnAndroid lane in `eng/pipelines/ci.yml` still used a `mac_`
prefix even though it now runs on the Linux Android pool. This updates
the lane name so the pipeline surface reflects the actual execution
environment.
- **Pipeline naming**
- Renamed the integration test lane from `mac_runandroid_tests` to
`linux_runandroid_tests`
- Left pool selection, timeout, and test category unchanged
- **Behavior**
- No functional pipeline changes
- `RunOnAndroid` continues to run on `AndroidPoolLinux`
```yaml
- name: linux_runandroid_tests
pool: ${{ parameters.AndroidPoolLinux }}
timeout: 240
testCategory: RunOnAndroid
```
---------
The RunOnAndroid lane in `eng/pipelines/ci.yml` still used a `mac_`
prefix even though it now runs on the Linux Android pool. This updates
the lane name so the pipeline surface reflects the actual execution
environment.
- **Pipeline naming**
- Renamed the integration test lane from `mac_runandroid_tests` to
`linux_runandroid_tests`
- Left pool selection, timeout, and test category unchanged
- **Behavior**
- No functional pipeline changes
- `RunOnAndroid` continues to run on `AndroidPoolLinux`
```yaml
- name: linux_runandroid_tests
pool: ${{ parameters.AndroidPoolLinux }}
timeout: 240
testCategory: RunOnAndroid
```
---------
The RunOnAndroid lane in `eng/pipelines/ci.yml` still used a `mac_`
prefix even though it now runs on the Linux Android pool. This updates
the lane name so the pipeline surface reflects the actual execution
environment.
- **Pipeline naming**
- Renamed the integration test lane from `mac_runandroid_tests` to
`linux_runandroid_tests`
- Left pool selection, timeout, and test category unchanged
- **Behavior**
- No functional pipeline changes
- `RunOnAndroid` continues to run on `AndroidPoolLinux`
```yaml
- name: linux_runandroid_tests
pool: ${{ parameters.AndroidPoolLinux }}
timeout: 240
testCategory: RunOnAndroid
```
---------
The RunOnAndroid lane in `eng/pipelines/ci.yml` still used a `mac_`
prefix even though it now runs on the Linux Android pool. This updates
the lane name so the pipeline surface reflects the actual execution
environment.
- **Pipeline naming**
- Renamed the integration test lane from `mac_runandroid_tests` to
`linux_runandroid_tests`
- Left pool selection, timeout, and test category unchanged
- **Behavior**
- No functional pipeline changes
- `RunOnAndroid` continues to run on `AndroidPoolLinux`
```yaml
- name: linux_runandroid_tests
pool: ${{ parameters.AndroidPoolLinux }}
timeout: 240
testCategory: RunOnAndroid
```
---------
The RunOnAndroid lane in `eng/pipelines/ci.yml` still used a `mac_`
prefix even though it now runs on the Linux Android pool. This updates
the lane name so the pipeline surface reflects the actual execution
environment.
- **Pipeline naming**
- Renamed the integration test lane from `mac_runandroid_tests` to
`linux_runandroid_tests`
- Left pool selection, timeout, and test category unchanged
- **Behavior**
- No functional pipeline changes
- `RunOnAndroid` continues to run on `AndroidPoolLinux`
```yaml
- name: linux_runandroid_tests
pool: ${{ parameters.AndroidPoolLinux }}
timeout: 240
testCategory: RunOnAndroid
```
---------
The RunOnAndroid lane in `eng/pipelines/ci.yml` still used a `mac_`
prefix even though it now runs on the Linux Android pool. This updates
the lane name so the pipeline surface reflects the actual execution
environment.
- **Pipeline naming**
- Renamed the integration test lane from `mac_runandroid_tests` to
`linux_runandroid_tests`
- Left pool selection, timeout, and test category unchanged
- **Behavior**
- No functional pipeline changes
- `RunOnAndroid` continues to run on `AndroidPoolLinux`
```yaml
- name: linux_runandroid_tests
pool: ${{ parameters.AndroidPoolLinux }}
timeout: 240
testCategory: RunOnAndroid
```
---------
The RunOnAndroid lane in `eng/pipelines/ci.yml` still used a `mac_`
prefix even though it now runs on the Linux Android pool. This updates
the lane name so the pipeline surface reflects the actual execution
environment.
- **Pipeline naming**
- Renamed the integration test lane from `mac_runandroid_tests` to
`linux_runandroid_tests`
- Left pool selection, timeout, and test category unchanged
- **Behavior**
- No functional pipeline changes
- `RunOnAndroid` continues to run on `AndroidPoolLinux`
```yaml
- name: linux_runandroid_tests
pool: ${{ parameters.AndroidPoolLinux }}
timeout: 240
testCategory: RunOnAndroid
```
---------
The RunOnAndroid lane in
eng/pipelines/ci.ymlstill used amac_prefix even though it now runs on the Linux Android pool. This updates the lane name so the pipeline surface reflects the actual execution environment.Pipeline naming
mac_runandroid_teststolinux_runandroid_testsBehavior
RunOnAndroidcontinues to run onAndroidPoolLinux