name: Preview — PR Build Check

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  preview-build:
    name: PR Preview Build
    runs-on: ubuntu-latest
    container:
      image: node:22-bookworm

    steps:
      - name: Install zip curl
        run: apt-get update -qq && apt-get install -y zip curl

      - name: Checkout PR
        run: |
          git clone ${{ gitea.server_url }}/${{ gitea.repository }}.git .
          git fetch origin pull/${{ gitea.event.pull_request.number }}/head:pr
          git checkout pr

      - name: Install dependencies
        run: npm ci

      - name: Type check
        run: npm run typecheck

      - name: Run unit tests
        run: npm test -- --run

      - name: Build extension
        run: npm run build

      - name: Package preview ZIP
        run: |
          PR_NUM=${{ gitea.event.pull_request.number }}
          zip -r lexai-pr-${PR_NUM}-preview.zip .output/chrome-mv3/
          echo "✅ PR #${PR_NUM} build successful"

      - name: Comment on PR
        run: |
          PR_NUM=${{ gitea.event.pull_request.number }}
          curl -s -X POST "${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/issues/${PR_NUM}/comments" \
            -H "Authorization: token ${{ secrets.GITEATOKEN }}" \
            -H "Content-Type: application/json" \
            -d "{\"body\": \"## ⚡ LexAI Preview Build Ready\n\n✅ Tests passed\n✅ Build successful\n✅ TypeScript clean\n\nCommit: \`${{ gitea.sha }}\`\"}"
