name: Deploy Codeberg Pages

on:
  push:
    branches: [main]
    paths:
      - 'include/**'
      - 'src/**'
      - 'docs/**'
      - 'README.md'
      - '.forgejo/workflows/pages.yml'
  workflow_dispatch:

jobs:
  deploy:
    runs-on: codeberg-small
    steps:
      - name: Install dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y doxygen

      - name: Checkout
        uses: https://code.forgejo.org/actions/checkout@v4

      - name: Generate Doxygen docs
        working-directory: docs
        run: doxygen Doxyfile 2>../doxygen-warnings.txt

      - name: Report doxygen warning count
        # See .github/workflows/pages.yml for the rationale: we
        # surface the count but don't fail on the existing backlog.
        run: |
          count=$(wc -l < doxygen-warnings.txt)
          echo "Doxygen produced ${count} warning lines"
          if [ "${count}" -gt 0 ]; then
            echo "First 20:"
            head -20 doxygen-warnings.txt
          fi

      - name: Stage site directory
        run: |
          mkdir -p _site
          cp -r docs/api/html/* _site/

      - name: Deploy to Codeberg Pages
        uses: https://codeberg.org/git-pages/action@v2
        with:
          site: 'https://${{ forge.repository_owner }}.codeberg.page/lime/'
          token: ${{ forge.token }}
          source: _site/
