name: e2e

on:
  pull_request:
    paths:
      - Makefile
      - playwright.config.js
      - .forgejo/workflows/e2e.yml
      - tests/e2e/**
      - web_src/js/**
      - web_src/css/form.css
      - templates/webhook/shared-settings.tmpl
      - templates/org/team/new.tmpl

jobs:
  test-e2e:
    if: ${{ !startsWith(vars.ROLE, 'forgejo-') }}
    runs-on: docker
    container:
      image: 'code.forgejo.org/oci/playwright:latest'
    steps:
      - uses: https://code.forgejo.org/actions/checkout@v4
      - uses: https://code.forgejo.org/actions/setup-go@v4
        with:
          go-version-file: "go.mod"
      - run: |
          git config --add safe.directory '*'
          chown -R forgejo:forgejo .
      - run: |
          su forgejo -c 'make deps-frontend frontend deps-backend'
      - run: |
          su forgejo -c 'make backend'
      - run: |
          su forgejo -c 'make generate test-e2e-sqlite'
        timeout-minutes: 40
        env:
          USE_REPO_TEST_DIR: 1