fix: hide desktop window until app is loaded to prevent flicker (#2345) #569
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |