name: Deploy GitHub Pages

on:
  push:
    branches:
      - master
    paths:
      - "example-avm-integration/**"
      - "autogram-sdk/**"
      - ".github/workflows/deploy-pages.yml"
  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version-file: .nvmrc
          cache: npm

      # typedoc-umlclass renders class diagrams with PlantUML (Java, preinstalled) + Graphviz
      - name: Install Graphviz
        run: sudo apt-get update && sudo apt-get install -y graphviz

      - name: Install dependencies
        run: npm ci

      - name: Build autogram-sdk
        run: npm run build
        working-directory: autogram-sdk

      - name: Build autogram-sdk docs
        run: npx typedoc --out ../.pages/autogram-sdk
        working-directory: autogram-sdk

      - name: Build example-avm-integration
        run: npx vite build
        working-directory: example-avm-integration

      - name: Prepare Pages artifact structure
        run: |
          mkdir -p .pages/example-avm-integration
          cp -R example-avm-integration/dist/* .pages/example-avm-integration/
          cat > .pages/index.html << 'EOF'
          <!doctype html>
          <html lang="en">
            <head>
              <meta charset="UTF-8" />
              <meta name="viewport" content="width=device-width, initial-scale=1" />
              <title>Autogram Extension</title>
              <style>
                body { font-family: system-ui, sans-serif; max-width: 40rem; margin: 3rem auto; padding: 0 1rem; line-height: 1.5; }
              </style>
            </head>
            <body>
              <h1>Autogram Extension</h1>
              <ul>
                <li><a href="autogram-sdk/">autogram-sdk API documentation</a></li>
                <li><a href="example-avm-integration/">example-avm-integration</a> &ndash; Autogram v mobile integration demo</li>
                <li><a href="https://github.com/slovensko-digital/autogram-extension">Source on GitHub</a></li>
              </ul>
            </body>
          </html>
          EOF

      - name: Upload Pages artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: .pages

  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4
