name: Playwright Tests
on:
  push:
    branches: [ main, master ]
  pull_request:
    branches: [ main, master ]
concurrency:
  group: ${{ github.ref }}
  cancel-in-progress: true
jobs:
  test:
    timeout-minutes: 60
    runs-on: ubuntu-latest
    container:
      image: mcr.microsoft.com/playwright:latest
    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with:
        node-version-file: .nvmrc
    - name: Install dependencies
      run: npm install -g pnpm && pnpm install
    - name: Build the service that will be tested
      run: |
        pnpm run build
        cp -r public .next/standalone/
        cp -r .next/static .next/standalone/.next/
    - name: Install Playwright Browsers
      run: pnpm exec playwright install --with-deps
    - name: Run the service that will be tested
      run: HOSTNAME=127.0.0.1 node .next/standalone/server.js &
    - name: Wait for the service to be ready
      run: npx wait-on http://127.0.0.1:3000/default/ --timeout 30000
    - name: Run Playwright tests
      run: pnpm exec playwright test
