[Testing] The Windows WebView category is removed from CI because WebView2 is not connected in Appium.#35335
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 35335Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 35335" |
|
Hey there @@TamilarasanSF4853! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed. |
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
Updates the UI test pipeline template to exclude the WebView test category from Windows (WinUI) CI, as a temporary mitigation for Appium/WebView2 connectivity issues that cause long-running/cancelled CI lanes (tracked in #35334).
Changes:
- Introduces a Windows-specific category list (
windowsCategoryGroupsToTest) that omitsWebView. - Switches the WinUI UI test matrix to use
windowsCategoryGroupsToTestinstead of the sharedcategoryGroupsToTest.
| # Windows-specific category groups — WebView is excluded because it runs too long on Windows CI. Issue - https://github.com/dotnet/maui/issues/35334 | ||
| windowsCategoryGroupsToTest: | ||
| - 'Accessibility,ActionSheet,ActivityIndicator,Animation,AppLinks' | ||
| - 'Border,BoxView,Brush,Button' | ||
| - 'CarouselView' | ||
| - 'Cells,CheckBox,ContextActions,CustomRenderers,DatePicker,Dispatcher,DisplayAlert,DisplayPrompt,DragAndDrop' | ||
| - 'CollectionView' | ||
| - 'Entry' | ||
| - 'Editor,Effects,Essentials,FlyoutPage,Focus,Fonts,Frame,Gestures,GraphicsView' | ||
| - 'Image,ImageButton,IndicatorView,InputTransparent,IsEnabled,IsVisible' | ||
| - 'Label' | ||
| - 'Layout' | ||
| - 'Lifecycle,ManualReview,Maps' | ||
| - 'ListView' | ||
| - 'Navigation' | ||
| - 'Page,Performance,Picker,ProgressBar' | ||
| - 'RadioButton,RefreshView' | ||
| - 'SafeAreaEdges,Shadow' | ||
| - 'ScrollView' | ||
| - 'SearchBar,Shape,Slider' | ||
| - 'SoftInput,Stepper,Switch,SwipeView' | ||
| - 'Shell' | ||
| - 'TabbedPage,TableView,TimePicker,TitleView,ToolbarItem,Triggers' | ||
| - 'ViewBaseTests,VisualStateManager,Window' |
|
@jfversluis can you merge it to main? |
🤖 AI Summary
📊 Review Session —
|
| File | Type | Risk |
|---|---|---|
eng/pipelines/common/ui-tests.yml |
CI pipeline (YAML) | Low. Only affects the WinUI UI-tests matrix (line ~457-468). Other platform matrices (iOS, Android, Mac) are untouched. |
Code Review Summary
Verdict: LGTM (small concerns)
Confidence: high
Errors: 0 | Warnings: 0 | Suggestions: 1
Findings:
- 💡
eng/pipelines/common/ui-tests.yml:460-461— Comment is good and links the upstream issue. Consider also calling out temporary workaround explicitly so a future maintainer/grep can find this when Appium ships a fix. Minor; not blocking. - ✅ Single source of truth preserved —
categoryGroupsToTestremains the only category list, so future additions automatically apply on Windows except the explicitly-excludedWebView. - ✅ Override-safe — pipelines that override
categoryGroupsToTestcontinue to work on the WinUI lane (the filter is applied to the parameter at expansion time). - ✅ Easy revert — removing the workaround is a 2-line deletion when
appium/appium#22217is fixed. - ✅ No drift risk — there is no parallel list to keep in sync with
UITestCategories.cs. - ✅ No regression risk to non-Windows platforms — iOS / Android / Mac matrices are unchanged.
Test Coverage
- Detected test type: None (CI pipeline YAML only).
- Gate:
⚠️ SKIPPED (passed in from prior step). Appropriate for this change — there are no in-repo tests for pipeline matrix expansion. Functional validation is the nextmaui-pr-uitestsrun on the PR (already triggered twice bysheiksyedm).
Hints for Try-Fix Phase
The fix space here is small and well-bounded. Distinct alternative shapes a try-fix model might explore:
- Inline
${{ if ne(categoryGroup, 'WebView') }}filter in the WinUI matrix (the current PR shape). - Add an explicit
windowsCategoryGroupsToExcludelist parameter and filter viacontainsValue. - Add a boolean
excludeWebViewOnWindowstoggle. - Restructure data — split
'WebView'out ofcategoryGroupsToTestinto a small parameter that non-Windows matrices append and the WinUI matrix omits. - Original PR shape (rejected by reviewer): full duplicate list
windowsCategoryGroupsToTest.
All five resolve the bug; ranking is by drift risk, override safety, diff size, and ease of revert.
🔧 Fix — Analysis & Comparison
Try-Fix Summary — PR #35335
Note on test execution: PR #35335 changes only
eng/pipelines/common/ui-tests.yml,
a CI pipeline matrix definition. There is no in-repo test target that exercises pipeline
matrix expansion — validation is structural (Azure Pipelines parser at queue time) plus
the nextmaui-pr-uitestsrun. As a result, the "Test Result" column is N/A for
every candidate; ranking is by code-review quality (drift risk, override safety,
diff size, ease of revert).
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| try-fix-1 | claude-opus-4.6 | Inline ${{ if ne(categoryGroup, 'WebView') }} in WinUI matrix |
N/A (YAML) | 1 file (~5 lines) | Smallest diff. Single source of truth. Identical to current PR shape. |
| try-fix-2 | claude-sonnet-4.6 | Add windowsCategoryGroupsToExclude: ['WebView'] parameter; filter via containsValue |
N/A (YAML) | 1 file (~7 lines) | Generalizes for future Windows-only exclusions. Equivalent to pr-plus-reviewer. |
| try-fix-3 | gpt-5.3-codex | Add excludeWebViewOnWindows: true boolean toggle |
N/A (YAML) | 1 file (~6 lines) | Self-documenting feature flag. Easy flip-test when Appium is fixed. |
| try-fix-4 | gemini-3-pro-preview | Split 'WebView' out of categoryGroupsToTest into separate webViewCategoryGroups; non-Windows matrices append it |
N/A (YAML) | 1 file (wider — every non-Windows matrix) | Cleanest WinUI block but touches every platform's matrix. Multi-site revert. |
| pr-plus-reviewer | Branch A (expert) | Current PR + comment polish ("TEMPORARY WORKAROUND") | N/A (YAML) | 1 file (~5 lines + comment) | Functionally identical to current PR / try-fix-1; only comment wording differs. |
| pr | PR #35335 (current head e63b31f) |
Inline ${{ if ne(categoryGroup, 'WebView') }} filter — already amended after copilot-pull-request-reviewer inline review |
1 file (+5 / -2) | Current PR is the same shape as try-fix-1. Author already addressed the original duplicated-list concern. |
Cross-Pollination
| Model | Round | New Ideas? | Details |
|---|---|---|---|
| claude-opus-4.6 | 2 | No | try-fix-1 already converges with the inline reviewer comment; no simpler shape exists. |
| claude-sonnet-4.6 | 2 | No | try-fix-2 generalizes try-fix-1 but adds no functional improvement for a single-element exclusion. |
| gpt-5.3-codex | 2 | No | Toggle is purely cosmetic over try-fix-1. |
| gemini-3-pro-preview | 2 | No | Data restructure is the most invasive and offers no correctness gain. |
Exhausted: Yes (1 cross-pollination round, no new ideas).
Selected Fix
pr (= functionally try-fix-1) — the current PR diff already implements the
optimal shape. The author rewrote the original duplicated-list change in response to the
inline copilot-pull-request-reviewer feedback, and the head commit e63b31f is
essentially try-fix-1. No further changes are required to merge.
The only outstanding (nit-level) note from the expert reviewer is to strengthen the
explanatory comment by adding the word "TEMPORARY WORKAROUND" to make the line
trivially grep-able when Appium ships a fix. That is captured as the single inline
finding and is non-blocking.
📋 Report — Final Recommendation
Phase 3 Report — PR #35335
✅ Final Recommendation: APPROVE (with optional 1-line comment polish)
Phase Status
| Phase | Status | Notes |
|---|---|---|
| Pre-Flight | ✅ COMPLETE | YAML-only PR; 1 file changed (+5/-2); 0 errors, 0 warnings, 1 nit-level suggestion. |
| Code Review | LGTM (high) | 0 errors, 0 warnings, 1 suggestion (comment polish). |
| Gate | No tests appropriate for a pipeline-matrix YAML change. | |
| Try-Fix | ✅ COMPLETE | 4 candidates (try-fix-1..4) + pr-plus-reviewer; all N/A test (YAML). |
| Report | ✅ COMPLETE |
Important context
The author has already amended this PR between the prior MauiBot session
(287b4fd — duplicated 22-element windowsCategoryGroupsToTest parameter) and
the current head (e63b31f — inline ${{ if ne(categoryGroup, 'WebView') }} filter).
The current diff is exactly the shape the inline copilot-pull-request-reviewer
recommended. The earlier inline review thread is now is_outdated: true.
Comparative Analysis
| Rank | Candidate | Drift risk | Override-safe | Diff size | Self-documenting | Easy revert |
|---|---|---|---|---|---|---|
| 1 | pr (current) ≡ try-fix-1 |
✅ none | ✅ yes | smallest (+5/-2) | ✅ inline comment | ✅ delete 2 lines |
| 1 (tie) | pr-plus-reviewer |
✅ none | ✅ yes | smallest (+ comment) | ✅✅ explicit "TEMPORARY" | ✅ delete 2 lines |
| 3 | try-fix-2 | ✅ none | ✅ yes | small (~7 lines) | ✅ named param | ✅ delete param |
| 4 | try-fix-3 | ✅ none | ✅ yes | small (~6 lines) | ✅ named flag | ✅ flip boolean |
| 5 | try-fix-4 | ✅ none | ✅ yes | wider (every non-Windows matrix) |
(No candidate failed regression tests because no regression tests exist for this PR;
ranking is therefore by code-review quality. The pre-merge ranking rule "candidates
that failed regression tests MUST be ranked lower" is vacuously satisfied — all
candidates have the same N/A test result.)
Code Review Impact on Try-Fix
The Pre-Flight code review for the current PR diff found no errors or warnings —
the duplicated-list concern that the prior MauiBot session correctly flagged has
already been resolved by the author's amendment. The single remaining suggestion
(comment polish) is captured in inline-findings.json and was applied in
pr-plus-reviewer.
All four try-fix candidates explore distinct design points (inline filter, exclusion
list, boolean toggle, data restructure), all preserve a single source of truth, and
all are override-safe. None offers a meaningful improvement over the current PR
shape.
Winner: pr
- Smallest diff that solves the problem.
- Zero drift risk —
categoryGroupsToTestremains the canonical list. - Override-safe — pipelines that override the parameter still work on the WinUI lane.
- Trivial revert when
appium/appium#22217is fixed: delete two lines. - Already addresses the inline
copilot-pull-request-reviewercomment.
Summary
PR #35335 correctly identifies a real CI productivity problem — the Windows WebView UI
test lane hangs ~3h waiting on a broken Appium ↔ WebView2 connection (appium/appium#22217)
and gets cancelled — and applies a minimal, well-commented, easily-revertable workaround
that excludes only the WebView category on Windows. The current implementation
preserves a single source of truth, is override-safe, and links both the upstream and
in-repo tracking issues from the matrix block.
The optional polish (pr-plus-reviewer) is a one-word comment change ("TEMPORARY
WORKAROUND") to make the line trivially grep-able when Appium ships a fix. Not
blocking; safe to merge as-is.
Root Cause
Upstream Appium driver bug — driver fails to attach to native WebView2 controls on
Windows; reproducible in a non-MAUI WinUI sample. The MAUI repo cannot fix the driver;
this PR is the appropriate workaround.
Fix Quality
The PR has evolved through a healthy review cycle: original commit added a duplicated
list (correctly flagged by copilot-pull-request-reviewer for drift risk), author
rewrote to the inline-filter shape, and the current head matches the optimal candidate
identified by independent multi-model exploration. No structural changes recommended.
Note on Gate: Gate was
⚠️ SKIPPED because no tests are appropriate for this change.
Pipeline YAML changes are validated structurally by the Azure Pipelines parser when
the pipeline is queued and functionally by the next CI run (already triggered twice
bysheiksyedmvia/azp run maui-pr-uitests).
📊 Review Session — 287b4fd · added issue link · 2026-05-08 10:04 UTC
🚦 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.
🧪 UI Tests — Category Detection
No UI test categories needed for this PR (no UI-relevant changes).
🔍 Regression Cross-Reference
🟢 No implementation files modified — skipping regression cross-reference.
🔍 Pre-Flight — Context & Validation
Issue: #35334 - [Windows] WebView CI lane is taking a long time to complete tests
PR: #35335 - [Testing] The Windows WebView category is removed from CI because WebView2 is not connected in Appium.
Platforms Affected: Windows CI (UI tests pipeline only)
Files Changed: 1 implementation (YAML pipeline), 0 test
Key Findings
- Single-file change in
eng/pipelines/common/ui-tests.yml(+26/-1). - Adds a new pipeline parameter
windowsCategoryGroupsToTestthat duplicates the existingcategoryGroupsToTestlist verbatim, only omitting'WebView'. - Switches the
winui_ui_testsmatrix fromcategoryGroupsToTestto the new Windows-only list (line 485). - Root cause is upstream: Appium driver currently fails to attach to WebView2 on Windows (also reproduces with a native WinUI WebView2 app), causing the WebView lane to hang ~3h until cancellation. Tracked in 🐞 bug: In Windows, Appium does not connect to the app when the app has WebView2 appium/appium#22217.
- Goal of this PR is purely to unblock Windows CI — it is a workaround, not a real fix for the WebView2 Appium connectivity bug.
- No unit/UI/device tests added (and none are appropriate; this is a pipeline configuration change verified by the pipeline parsing/running successfully).
- An inline review comment from the Copilot bot reviewer already flagged the duplication / drift risk and suggested keeping a single source of truth and conditionally skipping
WebViewfor WinUI. kubafloasked@jfversluisto merge tomain— community is waiting on this to unblock CI.
Code Review Summary
Verdict: NEEDS_DISCUSSION
Confidence: medium
Errors: 0 | Warnings: 1 | Suggestions: 2
Key code review findings:
⚠️ eng/pipelines/common/ui-tests.yml:46-68—windowsCategoryGroupsToTestis a verbatim copy ofcategoryGroupsToTestminusWebView. Two lists will drift when categories are added/renamed; the existing header comment about syncing withUITestCategories.csonly referencescategoryGroupsToTest, so a future maintainer is very likely to forget to update the Windows copy.- 💡
eng/pipelines/common/ui-tests.yml:485— Prefer a single source of truth: keepcategoryGroupsToTestas the only list and either (a)${{ if ne(categoryGroup, 'WebView') }}inside the WinUI matrix loop, (b) filter viacontainsValue/replace, or (c) make the excluded list a separate small parameter (windowsCategoryGroupsToExclude: ['WebView']) that the WinUI matrix subtracts. - 💡 The header comment on the new parameter is good (links the issue), but should also call out that this is a temporary workaround for 🐞 bug: In Windows, Appium does not connect to the app when the app has WebView2 appium/appium#22217 so it is easier to remove once Appium is fixed.
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| PR | PR #35335 | Add new windowsCategoryGroupsToTest parameter (full duplicate minus WebView), switch WinUI matrix to it |
eng/pipelines/common/ui-tests.yml |
Original PR; Copilot bot flagged duplication risk |
🔧 Fix — Analysis & Comparison
Try-Fix Summary (4 candidates)
Fix Candidates
| # | Source | Approach | Test Result | Files Changed | Notes |
|---|---|---|---|---|---|
| PR | PR #35335 | Add new 22-element windowsCategoryGroupsToTest parameter (full duplicate of categoryGroupsToTest minus 'WebView'); switch WinUI matrix to it |
eng/pipelines/common/ui-tests.yml |
Original PR. Copilot reviewer bot flagged duplication / drift risk. | |
| pr-plus-reviewer | Branch A | PR fix + reviewer feedback: replace duplicated list with an exclusion list (windowsCategoryGroupsToExclude: ['WebView']) and filter inside the WinUI matrix; strengthen the comment |
N/A (YAML) | eng/pipelines/common/ui-tests.yml |
Removes drift risk; keeps override compatibility; effectively the same as try-fix-2. |
| try-fix-1 | claude-opus-4.6 | Inline ${{ if ne(categoryGroup, 'WebView') }} inside the WinUI matrix each loop; no new parameter, single source of truth |
N/A (YAML) | eng/pipelines/common/ui-tests.yml (~5 lines) |
Smallest diff; matches Copilot bot reviewer's suggestion almost verbatim. |
| try-fix-2 | claude-sonnet-4.6 | Add windowsCategoryGroupsToExclude: ['WebView'] parameter; filter via ${{ if not(containsValue(...)) }} in WinUI matrix |
N/A (YAML) | eng/pipelines/common/ui-tests.yml (~7 lines) |
Generalizable for future Windows-only exclusions; equivalent to pr-plus-reviewer. |
| try-fix-3 | gpt-5.3-codex | Add boolean excludeWebViewOnWindows: true toggle; conditional skip in WinUI matrix |
N/A (YAML) | eng/pipelines/common/ui-tests.yml (~6 lines) |
Self-documenting feature flag; easiest to flip-test once Appium is fixed. |
| try-fix-4 | gemini-3-pro-preview | Move 'WebView' out of categoryGroupsToTest into a separate webViewCategoryGroups parameter; non-Windows matrices append it, WinUI matrix omits it |
N/A (YAML) | eng/pipelines/common/ui-tests.yml (wider — every non-Windows matrix site) |
Cleanest WinUI matrix block (no if), but requires touching every non-Windows matrix each. |
Cross-Pollination
| Model | Round | New Ideas? | Details |
|---|---|---|---|
| claude-opus-4.6 | 2 | No | Says try-fix-1 already converges with the Copilot bot reviewer comment; nothing simpler exists. |
| claude-sonnet-4.6 | 2 | No | try-fix-2 is the same data-driven shape as pr-plus-reviewer; no improvement found. |
| gpt-5.3-codex | 2 | No | Toggle is purely cosmetic over try-fix-1; no functional improvement available. |
| gemini-3-pro-preview | 2 | No | Restructuring the data is the most invasive of the four; no simpler restructuring exists. |
Exhausted: Yes (1 round of cross-pollination, no new ideas)
Selected Fix: try-fix-1 — minimal diff, single source of truth, matches the inline reviewer feedback already on the PR. See report/content.md for full comparison.
⚠️ No tests were executed for any try-fix candidate: this PR is a pipeline YAML
change with no associated test target. All candidates are validated structurally by the
Azure Pipelines parser at queue time; functional validation requires actually running
maui-pr-uitestsagainst each variant, which is outside the scope of this review. As a
result the "Test Result" column is N/A for every candidate, and ranking is based on
code-review quality (drift risk, override safety, readability, ease of revert).
📋 Report — Final Recommendation
⚠️ Final Recommendation: REQUEST CHANGES (suggest alternative)
Phase Status
| Phase | Status | Notes |
|---|---|---|
| Pre-Flight | ✅ COMPLETE | YAML-only PR; 1 file changed; 1 |
| Code Review | NEEDS_DISCUSSION (medium) | 0 errors, 1 warning (drift risk), 2 suggestions |
| Gate | No tests detected (pipeline YAML change — none expected) | |
| Try-Fix | ✅ COMPLETE | 4 attempts (try-fix-1..4) + pr-plus-reviewer; all N/A test (YAML), ranked on review quality |
| Report | ✅ COMPLETE |
Code Review Impact on Try-Fix
The Pre-Flight code-review surfaced one
22-element categoryGroupsToTest list — that exactly mirrors the inline comment already
left on the PR by the Copilot reviewer bot. This concern shaped Try-Fix exploration: every
candidate (try-fix-1 through try-fix-4 and pr-plus-reviewer) is structured to eliminate
duplication and keep a single source of truth, differing only in how the WebView
exclusion is encoded (inline if, generic exclusion list, named boolean toggle, or
data-shape split). No candidate retained the PR's duplicated-list approach.
Comparative Analysis
Comparing all six candidates (no candidate failed regression tests because no regression
tests exist for this PR; ranking is therefore by review quality — drift risk, override
safety, readability, ease of revert):
| Rank | Candidate | Drift risk | Override-safe? | Diff size | Self-documenting? | Easy revert? |
|---|---|---|---|---|---|---|
| 1 | try-fix-1 | ✅ none (single list) | ✅ yes | smallest (~5 lines) | ✅ inline comment | ✅ delete 2 lines |
| 2 | pr-plus-reviewer / try-fix-2 | ✅ none | ✅ yes | small (~7 lines) | ✅ named param | ✅ delete param |
| 3 | try-fix-3 | ✅ none | ✅ yes | small (~6 lines) | ✅ named flag | ✅ flip boolean |
| 4 | try-fix-4 | ✅ none | ✅ yes | wider (every non-Windows matrix) | ||
| 5 | pr (as submitted) | ❌ high (22 lines duplicated) | ❌ no (WinUI ignores categoryGroupsToTest overrides) |
medium (+26/-1) |
Winner: try-fix-1
- Smallest diff that fully solves the problem.
- Zero drift risk — there is exactly one canonical category list. Any future addition to
categoryGroupsToTestautomatically applies on Windows. - Override-safe — pipeline runs that override
categoryGroupsToTestcontinue to take
effect on the WinUI lane. - Matches the existing inline reviewer comment on the PR almost verbatim, so the PR
author can act on it with minimal back-and-forth. - Easy revert when Appium fixes 🐞 bug: In Windows, Appium does not connect to the app when the app has WebView2 appium/appium#22217 — delete two lines.
Summary
PR #35335 correctly identifies a real CI productivity problem (Windows WebView lane hangs
~3h waiting on a broken Appium ↔ WebView2 connection) and chooses a reasonable workaround
(skip the WebView category on Windows). The implementation, however, encodes the workaround
as a 22-line verbatim duplicate of categoryGroupsToTest, which (a) is guaranteed to drift
from the canonical list as new categories are added, (b) silently breaks any pipeline run
that overrides categoryGroupsToTest, and (c) is harder to revert cleanly when Appium is
fixed. All four try-fix candidates and the reviewer-feedback variant resolve these concerns
with a much smaller change.
Root Cause
Upstream Appium driver bug — the driver fails to attach to native WebView2 controls on
Windows, reproducible even in a non-MAUI WinUI sample (see appium/appium#22217). The MAUI
repo cannot fix the driver; this PR is a pipeline workaround to unblock Windows CI in the
meantime.
Fix Quality
The PR's intent is correct and the change is low-risk in the narrow sense (it only
affects the WinUI UI-test matrix). The implementation, however, has the duplication /
drift problem already flagged by the Copilot reviewer bot inline. Recommend adopting the
try-fix-1 shape (inline ${{ if ne(categoryGroup, 'WebView') }} filter inside the WinUI
matrix loop) before merge. This keeps the PR's intent, removes the maintenance liability,
and makes the workaround trivially revertable when Appium is fixed.
Note on Gate: Gate was
⚠️ SKIPPED because no tests are appropriate for this change.
Pipeline YAML changes are validated structurally by the Azure Pipelines parser when the
pipeline is queued, and functionally by the next CI run. Consider noting in the PR
description that no in-repo tests are expected.
MauiBot
left a comment
There was a problem hiding this comment.
🤖 Automated review — alternative fix proposed
The expert-reviewer evaluation compared the PR fix against #1 automatically generated candidates and selected try-fix-1 as the strongest fix.
Why: try-fix-1 is the smallest, override-safe, drift-free fix. It keeps categoryGroupsToTest as the single source of truth and skips only the WebView entry inside the WinUI matrix via an inline ${{ if ne(categoryGroup, 'WebView') }} — matching the inline reviewer comment already on the PR and trivial to revert once appium/appium#22217 is fixed. The PR's 22-line duplicated list (a) will drift from the canonical list and (b) silently breaks any pipeline run that overrides categoryGroupsToTest.
Please consider applying the candidate diff below (or use it as guidance). Once you push an update, this workflow will re-trigger and re-evaluate.
Candidate diff (`try-fix-1`)
diff --git a/eng/pipelines/common/ui-tests.yml b/eng/pipelines/common/ui-tests.yml
--- a/eng/pipelines/common/ui-tests.yml
+++ b/eng/pipelines/common/ui-tests.yml
@@ -457,9 +457,12 @@ stages:
- job: winui_ui_tests_${{ project.name }}
strategy:
matrix:
- ${{ each categoryGroup in parameters.categoryGroupsToTest }}:
- ${{ categoryGroup }}:
- CATEGORYGROUP: ${{ categoryGroup }}
+ # WebView is excluded on Windows: Appium driver cannot attach to WebView2
+ # (appium/appium#22217 / dotnet/maui#35334). Remove this filter once fixed.
+ ${{ each categoryGroup in parameters.categoryGroupsToTest }}:
+ ${{ if ne(categoryGroup, 'WebView') }}:
+ ${{ categoryGroup }}:
+ CATEGORYGROUP: ${{ categoryGroup }}
timeoutInMinutes: ${{ parameters.timeoutInMinutes }} # how long to run the job before automatically cancelling
workspace:
clean: all
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
MauiBot
left a comment
There was a problem hiding this comment.
Expert Review — 1 findings
See inline comments for details.
…View2 is not connected in Appium. (dotnet#35335) ### Description of Changes - Recently, the Appium driver has not been connecting properly to the native WebView2 control on Windows. While running locally using Appium Inspector with the WebView control, the inspector is unable to recognize the WebView and displays an error. - Due to this Appium driver issue, the WebView lane in CI takes a long time to run (approximately 3 hours) and eventually gets cancelled. As a temporary workaround, the WebView lane has been temporarily removed from the Windows CI pipeline to allow the CI process to complete more quickly. <img width="649" height="294" alt="image" src="https://github.com/user-attachments/assets/68df006b-56d6-4bfa-870a-a4184f5b18b7" /> <img width="576" height="430" alt="image" src="https://github.com/user-attachments/assets/40c222e8-4935-450d-be7e-5ee9245e9eb1" /> **Issue:** dotnet#35334
…View2 is not connected in Appium. (dotnet#35335) ### Description of Changes - Recently, the Appium driver has not been connecting properly to the native WebView2 control on Windows. While running locally using Appium Inspector with the WebView control, the inspector is unable to recognize the WebView and displays an error. - Due to this Appium driver issue, the WebView lane in CI takes a long time to run (approximately 3 hours) and eventually gets cancelled. As a temporary workaround, the WebView lane has been temporarily removed from the Windows CI pipeline to allow the CI process to complete more quickly. <img width="649" height="294" alt="image" src="https://github.com/user-attachments/assets/68df006b-56d6-4bfa-870a-a4184f5b18b7" /> <img width="576" height="430" alt="image" src="https://github.com/user-attachments/assets/40c222e8-4935-450d-be7e-5ee9245e9eb1" /> **Issue:** dotnet#35334
…xx-sr8 (#35810) <!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! ## Cut-then-merge step 2 of 2 SR8 was cut from `main` at [`e02d6b6dc2`](e02d6b6) (commit "Add gh-aw rerun review scanner (#35685)"). This PR pulls the SR7 stabilization work into SR8 so SR8 contains everything that's in SR7. - **Base:** `release/10.0.1xx-sr8` @ [`e02d6b6dc2`](e02d6b6) - **Merging in:** `release/10.0.1xx-sr7` @ [`9da598b4a1`](9da598b) (PatchVersion bump to 71) - **Merge base:** [`f8cb875e`](f8cb875eee) ("[Testing] The Windows WebView category is removed from CI…" #35335) - **Strategy:** non-fast-forward merge commit (preserves both branches' history) ## Conflict resolution Two trivial conflicts, both resolved by taking the SR8 (`HEAD`) side: | File | Why it conflicted | Resolution | | --- | --- | --- | | [`eng/Versions.props`](https://github.com/dotnet/maui/blob/release/10.0.1xx-sr8/eng/Versions.props) | SR7 bumped `PatchVersion` 70→71 (#35786); SR8 starts at 80 | Keep `PatchVersion=80` (SR8 is the higher patch band) | | `src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRenderer.cs` | Whitespace-only difference (`false; //` vs `false; //`) in two comments | Keep SR8's whitespace | No semantic conflicts. ## Inherited from SR7 26 SR7-only commits land in SR8 via this merge. The source PRs are: <details> <summary>Source PRs (43, deduped by commit)</summary> #35020, #35072, #35092, #35150, #35223, #35299, #35305, #35347, #35356, #35359, #35360, #35421, #35423, #35424, #35425, #35426, #35427, #35428, #35430, #35434, #35441, #35447, #35461, #35480, #35503, #35520, #35521, #35559, #35566, #35585, #35625, #35642, #35664, #35689, #35690, #35691, #35692, #35693, #35694, #35703, #35744, #35768, #35786 Includes the SR7 revert chain: - #35689 — Revert PR #30068 (FontImageSource centering on Windows) - #35694 — Revert TalkBack RadioButton fix - #35703 — Revert Shell.NavBarIsVisible fix - #35744 — Revert HybridWebView WebView fix - #35461, #35503 — additional Android reverts </details> After this lands, the release-readiness tracker can survey `release/10.0.1xx-sr8` directly instead of using `-Candidate -InheritFromPriorSr` mode against SR7.
Description of Changes
Recently, the Appium driver has not been connecting properly to the native WebView2 control on Windows. While running locally using Appium Inspector with the WebView control, the inspector is unable to recognize the WebView and displays an error.
Due to this Appium driver issue, the WebView lane in CI takes a long time to run (approximately 3 hours) and eventually gets cancelled. As a temporary workaround, the WebView lane has been temporarily removed from the Windows CI pipeline to allow the CI process to complete more quickly.
Issue: #35334