[pull] main from tldraw:main #1657
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: End to end tests (dotcom) | |
| on: | |
| pull_request: | |
| merge_group: | |
| push: | |
| branches: [main] | |
| env: | |
| CI: 1 | |
| PRINT_GITHUB_ANNOTATIONS: 1 | |
| TLDRAW_ENV: 'development' | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| check: | |
| name: 'Check for relevant changes' | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event.pull_request.head.repo.fork == false }} | |
| outputs: | |
| relevant: ${{ steps.filter.outputs.relevant }} | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v6 | |
| - name: Check for relevant changes | |
| uses: dorny/paths-filter@v3 | |
| id: filter | |
| with: | |
| filters: | | |
| relevant: | |
| - 'packages/**' | |
| - 'apps/dotcom/**' | |
| - '.github/workflows/playwright-dotcom.yml' | |
| - '.github/actions/**' | |
| - 'yarn.lock' | |
| - '!**/*.md' | |
| - '!**/*.mdx' | |
| build: | |
| name: 'End to end tests (dotcom)' | |
| needs: check | |
| if: needs.check.outputs.relevant == 'true' | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-latest-8-cores-open | |
| environment: 'e2e-dotcom' | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v6 | |
| - name: Run our setup | |
| uses: ./.github/actions/setup | |
| - name: Get installed Playwright version | |
| id: playwright-version | |
| run: | | |
| yarn info @playwright/test --json > playwright.json | |
| echo "PLAYWRIGHT_VERSION=$(node -e "console.log(require('./playwright.json').children.Version)")" >> $GITHUB_ENV | |
| working-directory: 'apps/dotcom/client' | |
| - uses: actions/cache@v5 | |
| name: Check for Playwright browsers cache | |
| id: playwright-cache | |
| with: | |
| path: | | |
| ~/.cache/ms-playwright | |
| key: ${{ runner.os }}-${{ runner.arch }}-playwright-${{ env.PLAYWRIGHT_VERSION }} | |
| - name: Install Playwright Browsers | |
| run: npx playwright install --with-deps chromium chrome | |
| if: steps.playwright-cache.outputs.cache-hit != 'true' | |
| - name: Build dotcom client | |
| run: yarn run -T lazy refresh-assets && yarn run -T lazy run prebuild && yarn run -T lazy run build-i18n && cd apps/dotcom/client && yarn build | |
| env: | |
| VITE_CLERK_PUBLISHABLE_KEY: ${{ secrets.VITE_CLERK_PUBLISHABLE_KEY }} | |
| - name: Run Playwright tests | |
| run: | | |
| echo "CLERK_PUBLISHABLE_KEY=${{ secrets.VITE_CLERK_PUBLISHABLE_KEY }}" > apps/dotcom/sync-worker/.dev.vars | |
| echo "CLERK_SECRET_KEY=${{ secrets.CLERK_SECRET_KEY }}" >> apps/dotcom/sync-worker/.dev.vars | |
| yarn e2e-dotcom | |
| env: | |
| VITE_CLERK_PUBLISHABLE_KEY: ${{ secrets.VITE_CLERK_PUBLISHABLE_KEY }} | |
| CLERK_SECRET_KEY: ${{ secrets.CLERK_SECRET_KEY }} | |
| if: ${{!contains(github.event.pull_request.labels.*.name, 'e2e-x10') }} | |
| - name: Run Playwright tests (x10) | |
| run: | | |
| echo "CLERK_PUBLISHABLE_KEY=${{ secrets.VITE_CLERK_PUBLISHABLE_KEY }}" > apps/dotcom/sync-worker/.dev.vars | |
| echo "CLERK_SECRET_KEY=${{ secrets.CLERK_SECRET_KEY }}" >> apps/dotcom/sync-worker/.dev.vars | |
| yarn e2e-dotcom-x10 | |
| env: | |
| VITE_CLERK_PUBLISHABLE_KEY: ${{ secrets.VITE_CLERK_PUBLISHABLE_KEY }} | |
| CLERK_SECRET_KEY: ${{ secrets.CLERK_SECRET_KEY }} | |
| if: contains(github.event.pull_request.labels.*.name, 'e2e-x10') | |
| - uses: actions/upload-artifact@v6 | |
| if: always() | |
| with: | |
| name: playwright-report | |
| path: apps/dotcom/client/playwright-report | |
| retention-days: 30 | |
| - uses: shallwefootball/s3-upload-action@master | |
| # only upload if we have AWS credentials: | |
| env: | |
| HAS_AWS_KEY: ${{ secrets.AWS_S3_SECRET_KEY && '1' || '' }} | |
| if: always() && env.HAS_AWS_KEY == '1' | |
| name: Upload S3 | |
| id: s3 | |
| with: | |
| aws_key_id: ${{ secrets.AWS_S3_KEY_ID }} | |
| aws_secret_access_key: ${{ secrets.AWS_S3_SECRET_KEY}} | |
| aws_bucket: playwright.tldraw.xyz | |
| source_dir: apps/dotcom/client/playwright-report | |
| - name: Log report to summary | |
| if: always() | |
| run: | | |
| report_url="https://playwright.tldraw.xyz/${{ steps.s3.outputs.object_key }}/index.html" | |
| echo "Report: $report_url" | |
| echo "## Playwright report" >> $GITHUB_STEP_SUMMARY | |
| echo "* $report_url" >> $GITHUB_STEP_SUMMARY |