name: E2E tests on: pull_request: push: branches: - main jobs: test: timeout-minutes: 10 runs-on: ubuntu-latest # runs-on: self-hosted strategy: matrix: shard: [1/3, 2/3, 3/3] steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - run: corepack enable - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4 with: node-version: 16 cache: 'pnpm' - name: Get Playwright version id: playwright-version run: echo "PLAYWRIGHT_VERSION=$(jq -r .dependencies.playwright package.json)" >> "$GITHUB_OUTPUT" - name: Install dependencies run: pnpm install --no-frozen-lockfile - name: Build app run: pnpm build - name: Restore Playwright browsers from cache uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4 with: path: ~/.cache/ms-playwright key: ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.PLAYWRIGHT_VERSION }}-${{ hashFiles('**/playwright.config.ts') }} restore-keys: | ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.PLAYWRIGHT_VERSION }}- ${{ runner.os }}-playwright- - name: Install Playwright Browsers run: pnpm exec playwright install --with-deps - name: Run Playwright tests run: pnpm run test:e2e --shard=${{ matrix.shard }}