name: e2e

on:
  pull_request:
    paths:
      - Makefile
      - playwright.config.js
      - .forgejo/workflows/e2e.yml
      - tests/e2e/**
      - web_src/js/**

jobs:
  test-e2e:
    if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
    runs-on: docker
    container:
      image: 'docker.io/node:20-bookworm'
    steps:
      - uses: https://code.forgejo.org/actions/checkout@v4
      - uses: https://code.forgejo.org/actions/setup-go@v4
        with:
          go-version: "1.22"
          check-latest: true
      - run: |
          apt-get -qq update
          apt-get -qq install -q sudo
          sed -i -e 's/%sudo.*/%sudo   ALL=(ALL:ALL) NOPASSWD:ALL/' /etc/sudoers
          git config --add safe.directory '*'
          adduser --quiet --comment forgejo --disabled-password forgejo
          adduser forgejo sudo
          chown -R forgejo:forgejo .
      - run: |
          su forgejo -c 'make deps-frontend frontend deps-backend'
      - run: |
          su forgejo -c 'make generate test-e2e-sqlite'
        timeout-minutes: 40
        env:
          DEPS_PLAYWRIGHT: 1
          USE_REPO_TEST_DIR: 1
