Skip to content

Commit 66a2e50

Browse files
committed
CI: stop gating desktop-e2e-linux on desktop-rust
The two are independent: a Rust unit-test failure shouldn't silently skip e2e validation, and vice versa. Gating them together hid a 4-day red main streak in May 2026, where a flaky accent-color unit test (now fixed) kept blocking e2e from ever running on PRs that touched neither path. Kept the `desktop-svelte` gate — the e2e binary embeds the frontend build, so without a green Svelte build there's no artifact worth running. Rewrote the `if:` clause to check the surviving need explicitly, since the prior `!contains(needs.*.result, 'failure')` would have been satisfied only by accident now.
1 parent eb67f38 commit 66a2e50

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

.github/workflows/ci.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,12 +191,19 @@ jobs:
191191
desktop-e2e-linux:
192192
name: E2E tests (Playwright, Linux)
193193
runs-on: ubuntu-latest
194-
needs: [changes, desktop-rust, desktop-svelte]
194+
# NOT gated on `desktop-rust`. The two are independent: a Rust unit-test
195+
# failure shouldn't silently skip e2e validation (and vice versa). Gating
196+
# them together hid a 4-day red main streak in May 2026, where a flaky
197+
# accent-color unit test kept blocking e2e from ever running on PRs that
198+
# touched neither path. Keep the `desktop-svelte` gate — the e2e binary
199+
# embeds the frontend build, so without a green Svelte build there's no
200+
# artifact worth running.
201+
needs: [changes, desktop-svelte]
195202
if: |
196203
always() &&
197204
(inputs.run_all || needs.changes.outputs.desktop == 'true') &&
198-
!contains(needs.*.result, 'failure') &&
199-
!contains(needs.*.result, 'cancelled')
205+
needs.desktop-svelte.result != 'failure' &&
206+
needs.desktop-svelte.result != 'cancelled'
200207
201208
steps:
202209
- name: Checkout code

0 commit comments

Comments
 (0)