From 6b63a67a0c4b074f7fc826225a5a2b8bd781e805 Mon Sep 17 00:00:00 2001 From: Anso Date: Fri, 19 Jun 2026 21:45:04 -0400 Subject: [PATCH] ci: retry E2E tests in CI to absorb flaky real-Docker timing (#1396) The E2E suite includes real-Docker deploy and health-gate specs whose timing varies on shared CI runners (cold image pulls, gate observation windows). With no retries configured, a single transient timing blip failed the whole Playwright job. Enable 2 retries in CI only; local runs stay at 0 for fast, deterministic feedback. The existing trace: 'on-first-retry' now captures the retried attempt for triage. --- playwright.config.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/playwright.config.ts b/playwright.config.ts index 404983c5..6faa7913 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -19,6 +19,10 @@ export default defineConfig({ expect: { timeout: 5_000 }, // Run tests serially - Sencho is a single-user app and tests share DB state workers: 1, + // Retry only in CI: the deploy/health-gate specs drive real Docker container + // runs, so image-pull and gate-window timing varies on shared runners. A retry + // absorbs the transient blip; trace: 'on-first-retry' captures the retried run. + retries: process.env.CI ? 2 : 0, reporter: [['list'], ['html', { outputFolder: 'e2e/report', open: 'never' }]], use: {