tldraw/.github/workflows/playwright.yml
alex 245f74010c
speed up playwright and add visual regression tests (#1638)
This diff:
- tweaks how playwright runs in CI to have it go a bit faster
- uploads nice browsable reports to S3 for looking at playwright
failures and traces
- adds visual regression testing to playwright

### Change Type

- [x] `tests` — Changes to any test code only[^2]

### Test Plan

- [ ] Unit Tests
- [x] End to end tests

### Release Notes

--

---------

Co-authored-by: huppy-bot[bot] <128400622+huppy-bot[bot]@users.noreply.github.com>
2023-06-23 11:53:04 +00:00

70 lines
1.7 KiB
YAML

name: End to end tests
on:
pull_request:
merge_group:
push:
branches: [main]
env:
CI: 1
PRINT_GITHUB_ANNOTATIONS: 1
defaults:
run:
shell: bash
jobs:
build:
name: 'End to end tests'
timeout-minutes: 60
runs-on: ubuntu-latest-16-cores-open
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'yarn'
cache-dependency-path: 'public-yarn.lock'
- name: Enable corepack
run: corepack enable
- name: Install dependencies
run: yarn
- name: Install Playwright browsers
run: npx playwright install --with-deps chromium chrome
- name: Run Playwright tests
run: 'yarn e2e'
working-directory: apps/examples
- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: apps/examples/playwright-report
retention-days: 30
- uses: shallwefootball/s3-upload-action@master
if: always()
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-reports.tldraw.xyz
source_dir: apps/examples/playwright-report
- name: Log report to summary
if: always()
run: |
report_url="https://playwright-reports.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