Skip to content

fix: hide desktop window until app is loaded to prevent flicker (#2345) #569

fix: hide desktop window until app is loaded to prevent flicker (#2345)

fix: hide desktop window until app is loaded to prevent flicker (#2345) #569

Workflow file for this run

name: e2e
on:
push:
branches:
- main
- release/*
pull_request:
branches:
- main
- release/*
workflow_dispatch:
# A newer run for the same ref supersedes an in-progress one.
concurrency:
group: e2e-${{ github.ref }}
cancel-in-progress: true
jobs:
playwright:
name: ${{ matrix.project }}
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
# Report every browser independently — don't cancel the others when one fails.
fail-fast: false
matrix:
include:
- project: chromium
browser: chromium
artifact: chromium
- project: firefox
browser: firefox
artifact: firefox
- project: webkit
browser: webkit
artifact: webkit
- project: mobile-chrome
browser: chromium
artifact: mobile-chrome
- project: mobile-safari
browser: webkit
artifact: mobile-safari
# Provider-matrix grid (shared specs: browser × fake backend)
- project: chromium-lemmyv1
browser: chromium
artifact: chromium-lemmyv1
- project: chromium-piefed
browser: chromium
artifact: chromium-piefed
- project: firefox-lemmyv1
browser: firefox
artifact: firefox-lemmyv1
- project: firefox-piefed
browser: firefox
artifact: firefox-piefed
- project: webkit-lemmyv1
browser: webkit
artifact: webkit-lemmyv1
- project: webkit-piefed
browser: webkit
artifact: webkit-piefed
- project: mobile-chrome-lemmyv1
browser: chromium
artifact: mobile-chrome-lemmyv1
- project: mobile-chrome-piefed
browser: chromium
artifact: mobile-chrome-piefed
- project: mobile-safari-lemmyv1
browser: webkit
artifact: mobile-safari-lemmyv1
- project: mobile-safari-piefed
browser: webkit
artifact: mobile-safari-piefed
steps:
- uses: actions/checkout@v6
- name: Install pnpm
uses: pnpm/action-setup@v6
- name: Install Node.js
uses: actions/setup-node@v6
with:
node-version-file: .tool-versions
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build project
run: pnpm build
- name: Install Playwright browser
run: pnpm playwright install --with-deps ${{ matrix.browser }}
- name: Run Playwright tests
# The specs are fully page.route-mocked (no real Lemmy server needed).
run: pnpm exec playwright test --project="${{ matrix.project }}"
- name: Upload report
# On failure this includes traces/screenshots from test-results/
uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
name: playwright-report-${{ matrix.artifact }}
path: |
playwright-report/
test-results/
retention-days: 7
if-no-files-found: ignore