name: Documentation

on:
  push:
    branches:
      - master

jobs:

  doc:
    name: Build and deploy documentation
    runs-on: ubuntu-latest
    env:
      GO_VERSION: stable
      HUGO_VERSION: 0.131.0
      CGO_ENABLED: 0

    steps:

      # https://github.com/marketplace/actions/checkout
      - name: Check out code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      # https://github.com/marketplace/actions/setup-go-environment
      - name: Set up Go ${{ env.GO_VERSION }}
        uses: actions/setup-go@v5
        with:
          go-version: ${{ env.GO_VERSION }}

      - name: Generate DNS docs
        run: make generate-dns

      - name: Install Hugo
        run: |
          wget -O /tmp/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-amd64.deb
          sudo dpkg -i /tmp/hugo.deb

      - name: Build Documentation
        run: make docs-build

      # https://github.com/marketplace/actions/github-pages
      - name: Deploy to GitHub Pages
        uses: crazy-max/ghaction-github-pages@v4
        with:
          target_branch: gh-pages
          build_dir: docs/public
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}