Playwright Github Actions Workflow
 
 name: Playwright Tests
on:
  push:
    branches: [ main, master ]
  pull_request:
    branches: [ main, master ]
  workflow_dispatch:
    inputs:
      browser:
        type: choice
        description: Which browser to test
        required: true
        options:
          - firefox
          - chromium
          - webkit
jobs:
  test:
    timeout-minutes: 60
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with:
        node-version: lts/*
    - name: Install dependencies
      run: npm ci
    - name: Install Playwright Browsers
      run: npx playwright install --with-deps
    - name: Run Playwright tests
      run: npx playwright test --project ${{ github.event.inputs.browser }}
    - uses: actions/upload-artifact@v4
      if: always()
      with:
        name: playwright-report
        path: playwright-report/
        retention-days: 30- uses: actions/checkout@v4- uses: actions/setup-node@v4
  with:
    node-version: lts/*- name: Install dependencies
  run: npm ci- name: Install Playwright Browsers
  run: npx playwright install --with-deps- name: Run Playwright tests
  run: npx playwright test --project ${{ github.event.inputs.browser }}- uses: actions/upload-artifact@v4
  if: always()
  with:
    name: playwright-report
    path: playwright-report/
    retention-days: 30