Nightly E2E Tests #100
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: Nightly E2E Tests | |
| on: | |
| schedule: | |
| - cron: "0 2 * * *" # 2 AM UTC every night | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| pick: | |
| uses: ./.github/workflows/_runner-pick.yml | |
| playwright-all-browsers: | |
| name: Playwright (chromium + firefox + webkit) | |
| needs: pick | |
| runs-on: ${{ needs.pick.outputs.is_fork == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} | |
| steps: | |
| - name: Harden the runner (Audit all outbound calls) | |
| uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3 | |
| with: | |
| egress-policy: audit | |
| - name: Checkout repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: "22" | |
| cache: "npm" | |
| cache-dependency-path: frontend/package-lock.json | |
| - name: Install Task | |
| uses: go-task/setup-task@01a4adf9db2d14c1de7a560f09170b6e0df736aa # v2.1.0 | |
| - name: Install all Playwright browsers | |
| run: task e2e:install | |
| - name: Build frontend (production bundle for vite preview) | |
| env: | |
| VITE_BUILD_FOR_PREVIEW: "1" | |
| run: task frontend:build | |
| - name: Run E2E tests (all browsers) | |
| run: task e2e:cross-browser | |
| - name: Upload Playwright report | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: playwright-nightly-${{ github.run_id }} | |
| path: frontend/editor/playwright-report/ | |
| retention-days: 14 | |
| # Builds all desktop platforms on a schedule so the Rust dependency cache is | |
| # written on main, where PR and merge-queue tauri builds can restore it. | |
| warm-tauri-cache: | |
| name: Warm Tauri Rust cache | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| uses: ./.github/workflows/tauri-build.yml | |
| with: | |
| platform: all | |
| sign: false | |
| secrets: inherit |