name: deploy docs
on:
  workflow_dispatch:
  push:
    branches:
      - master
    paths:
      - '.github/workflows/deploy-docs.yml'
      - 'docs/**'

jobs:
  deploy-docs:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-bun
        with:
          working-directory: ./docs

      - name: Cache build
        uses: actions/cache@v3
        with:
          path: |
            docs/.next/cache
          key: ${{ runner.os }}-nextjs-${{ hashFiles('**/bun.lockb') }}-${{ hashFiles('**/package.json') }}
          restore-keys: |
            ${{ runner.os }}-nextjs-${{ hashFiles('**/bun.lockb') }}
            ${{ runner.os }}-nextjs-

      - name: Build docs
        run: |
          bun --cwd docs build
          touch docs/out/.nojekyll

      - name: Deploy docs to GitHub Pages
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          branch: gh-pages
          folder: docs/out

permissions:
  contents: write