From 055160120b9ebb4764f629f55351f6c962ebcb32 Mon Sep 17 00:00:00 2001 From: Waleed Latif Date: Tue, 13 Oct 2026 12:26:03 -0700 Subject: [PATCH] ci(desktop): run the live suite's lease-lapse test on its own runner --- .github/workflows/checks.yml | 16 +++++++++++++--- apps/desktop/e2e/desktop-tools-live-sim.spec.ts | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index c4163d32a94..ffb2efdda87 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -332,12 +332,22 @@ jobs: # Desktop tools in the real Electron app against a local app, on its own runner: the # Electron app, the dev app and its realtime server together outgrow the e2e runner. + # Two runners: the lease-lapse test sleeps through a long import and then a lease (~3 min), as + # long as the rest of the spec together, so on one runner it set the time for every run. desktop-live: - name: desktop-live + name: desktop-live (${{ matrix.tests }}) needs: changes if: needs.changes.outputs.desktop_live == 'true' runs-on: ${{ (vars.CI_PROVIDER == '' || vars.CI_PROVIDER == 'blacksmith') && 'blacksmith-16vcpu-ubuntu-2404' || 'ubuntu-latest' }} timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + include: + - tests: lease-lapse + filter: --grep @lease-lapse + - tests: rest + filter: --grep-invert @lease-lapse services: postgres: image: pgvector/pgvector:pg17 @@ -503,13 +513,13 @@ jobs: SIM_DESKTOP_E2E_REDIS_URL="$REDIS_URL" \ SIM_DESKTOP_E2E_AUTH_SECRET="$BETTER_AUTH_SECRET" \ xvfb-run -a -s '-screen 0 1920x1200x24' bunx playwright test e2e/desktop-tools-live-sim.spec.ts \ - --output "$report_dir/desktop-tools-results" --retries=0 + ${{ matrix.filter }} --output "$report_dir/desktop-tools-results" --retries=0 - name: Upload Electron E2E results and server logs if: failure() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: desktop-live-e2e-results + name: desktop-live-e2e-results-${{ matrix.tests }} path: ${{ runner.temp }}/e2e/ if-no-files-found: ignore retention-days: 7 diff --git a/apps/desktop/e2e/desktop-tools-live-sim.spec.ts b/apps/desktop/e2e/desktop-tools-live-sim.spec.ts index 20b2262b17b..8feb023bd96 100644 --- a/apps/desktop/e2e/desktop-tools-live-sim.spec.ts +++ b/apps/desktop/e2e/desktop-tools-live-sim.spec.ts @@ -546,7 +546,7 @@ test.describe('desktop tools against a live Sim', () => { expect(await callState(chatId)).toMatch(/^completed/) }) - test('a long import whose window crashed settles as outcome unknown about one lease later', async () => { + test('a long import whose window crashed settles as outcome unknown about one lease later @lease-lapse', async () => { test.setTimeout(420_000) const user = await db.seedUser(['Crashing import chat']) const { callId } = await slowImport(user, 'Crashing import chat', '[crash-import]')