name: E2E on: push: branches: - main paths: - "src/**" - "tests/e2e/**" - "playwright.config.ts" - "package.json" - "package-lock.json" - ".github/workflows/e2e.yml" pull_request: branches: - main jobs: playwright: runs-on: ubuntu-latest timeout-minutes: 25 env: NEZHA_REPO: nezhahq/nezha NEZHA_REF: master NZ_LISTENHOST: 127.0.0.1 NZ_LISTENPORT: "8008" NZ_AGENTSECRETKEY: e2e-agent-secret-32-bytes-long-ok NZ_JWTSECRETKEY: e2e-jwt-secret-key-min-32-chars-long-ok NZ_SITENAME: nezha-e2e NZ_DEBUG: "true" E2E_ADMIN_USER: admin E2E_ADMIN_PASS: admin E2E_BASE_URL: http://127.0.0.1:5173 steps: - name: Checkout admin-frontend uses: actions/checkout@v6 with: path: admin-frontend - name: Checkout nezha backend uses: actions/checkout@v6 with: repository: ${{ env.NEZHA_REPO }} ref: ${{ env.NEZHA_REF }} path: nezha - name: Setup Node uses: actions/setup-node@v6 with: node-version: 20 cache: npm cache-dependency-path: admin-frontend/package-lock.json - name: Setup Go uses: actions/setup-go@v6 with: go-version: "1.26.x" cache-dependency-path: nezha/go.sum - name: Install frontend dependencies working-directory: admin-frontend run: npm ci - name: Install Playwright browsers working-directory: admin-frontend run: npx playwright install --with-deps chromium - name: Prepare backend stubs (dist + swagger docs) working-directory: nezha run: | mkdir -p cmd/dashboard/admin-dist cmd/dashboard/user-dist printf '