ci(desktop): surface flaky E2E tests instead of retry-masking them#1838
Conversation
CI retries: 2 lets a test fail then pass with no durable signal beyond a one-line console summary — the gap that hid the stream.spec.ts membership race (#1798) for months behind a green checkmark. Adds the json reporter to playwright.config.ts, a script that walks its output for status === "flaky" tests and appends them to the job summary, and changes the smoke/integration artifact-upload steps from if: failure() to if: !cancelled() so retry traces survive a shard that eventually passes. Pass/fail semantics are unchanged. Co-authored-by: Will Pfleger <pfleger.will@gmail.com> Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
wesbillman
left a comment
There was a problem hiding this comment.
Reviewed the diff and exercised summarize-flaky-tests.mjs locally against a fixture: nested describe suites are walked, pipe chars in titles are escaped, and both missing-file and malformed-JSON cases print 'Skipping…' and exit 0 — so the step can never fail a green shard. Coverage is complete: both Playwright-running jobs (smoke ×4, integration ×2) get the summary step; no other job runs Playwright. Pass/fail semantics untouched.
One non-blocking observation: if: !cancelled() on the artifact uploads means every green run of all 6 shards now uploads playwright-report + test-results at default 90-day retention. That's the stated point (retry traces surviving green shards), but if storage ever becomes noise, a retention-days on these uploads would be the cheap dial.
The smoke and integration Playwright artifact uploads changed from if: failure() to if: !cancelled(), so they now upload on every green run. Cap retention to 7 days so diagnostic traces don't linger at the 90-day default.
…image-paste * origin/main: refactor(clients): standardize product naming on community (#1858) fix(desktop): retain live rows after window exhaustion (#1810) Add private product feedback sidecar (#1857) fix(desktop): resolve Doctor install shell and command detection on Windows (#1854) fix(desktop): navigate to channel from inbox thread header (#1847) feat(desktop): surface needsRestart badge on live UI surfaces (#1853) fix(desktop): prevent menu-to-dialog UI lockups (#1839) feat(relay): add durable community archival (#1834) feat(desktop): add conversation-style DM composer (#1768) feat(push): add public APNs gateway (#1770) feat(relay): add atomic community ownership transfer (#1845) fix(desktop): stabilize agent identity restore (#1831) fix(buzz-acp): distinguish idle vs hard-cap timeout, dead-letter hard kills immediately (#1844) fix(observer): align scroll-anchor ids with transcript display-block keys (#1849) [codex] Add view activity label to agent popover (#1748) ci(desktop): surface flaky E2E tests instead of retry-masking them (#1838) fix(desktop): treat channel creator as member before 39002 provisioning (#1830) fix(mobile): mirror app bar title padding when actions are empty (#1832) Co-authored-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co> Signed-off-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co>
CI retries: 2 lets a test fail then pass with no durable signal beyond a one-line console summary — the gap that hid the stream.spec.ts membership race (#1798) for months behind a green checkmark.
Adds the json reporter to
playwright.config.ts, a script that walks its output forstatus === "flaky"tests and appends them to the job summary, and changes the smoke/integration artifact-upload steps fromif: failure()toif: !cancelled()so retry traces survive a shard that eventually passes. Pass/fail semantics are unchanged.