/
githubmirror
/
tldraw
Обзор
Документация
Войти
/
githubmirror
/
tldraw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
.github/workflows/playwright-dotcom.yml
126 строк
4 KB
Mime Čuvalo
ci: pin credentialed third-party actions to commit SHAs (#9605)
16 июл 2026, 18:50
Не верифицирован
16 июл 2026, 18:50
ceae404
Код
Авторство
О чём код?
name: End to end tests (dotcom) on: pull_request: merge_group: push: branches: [main] env: CI: 1 PRINT_GITHUB_ANNOTATIONS: 1 TLDRAW_ENV: 'development' # process-compose (the dev-app orchestrator) has no TTY in CI — run it headless. PC_DISABLE_TUI: '1' 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.includes.outputs.match == 'true' && steps.nondocs.outputs.match == 'true' }} steps: - name: Check out code uses: actions/checkout@v6 - name: Check for changes to relevant paths uses: dorny/paths-filter@v3 id: includes with: filters: | match: - 'packages/**' - 'apps/dotcom/**' - '.github/workflows/playwright-dotcom.yml' - '.github/actions/**' - 'yarn.lock' - name: Check for any non-doc changes uses: dorny/paths-filter@v3 id: nondocs with: predicate-quantifier: 'every' filters: | match: - '**' - '!**/*.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 # No process-compose install step: `yarn dev-app` (the e2e webServer) calls the `process-compose` # bin of @tldraw/scripts, which fetches the pinned binary on first use. - name: Set up Playwright uses: ./.github/actions/setup-playwright - 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@0d261a6f15b3b2e209dfebdecace4b100c04f95b # 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