name: Deploy to GitHub Pages

on:
  workflow_dispatch:
  release:
    types: [released]
    # Review gh actions docs if you want to further define triggers, paths, etc
    # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on

jobs:
  deploy:
    name: Deploy to GitHub Pages
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 #v4.3.0
        with:
          persist-credentials: false
      - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 #4.4.0
        with:
          node-version: 20
          cache: npm

      - name: Install app dev dependencies
        run: npm ci
      - name: Generate schema files
        run: npm run schema

      - name: Install docusaurus dependencies
        run: npm ci
        working-directory: ./docsite
      - name: Build website
        env:
          ANALYTICS: ${{ vars.ANALYTICS }}
          ANALYTICS_DOMAIN: ${{ vars.ANALYTICS_DOMAIN }}
          RY_ANALYTICS: ${{ vars.RY_ANALYTICS }}
          RY_ANALYTICS_SITEID: ${{ vars.RY_ANALYTICS_SITEID }}
          RY_ANALYTICS_REPLAY: ${{ vars.RY_ANALYTICS_REPLAY }}
          GSITEVERIFICATION: ${{ vars.GSITEVERIFICATION }}
          DOCS_BASE: '/multi-scrobbler'
        run: npm run build
        working-directory: ./docsite

      # Popular action to deploy to GitHub Pages:
      # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 #3.9.3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          # Build output to publish to the `gh-pages` branch:
          publish_dir: ./docsite/build
          # The following lines assign commit authorship to the official
          # GH-Actions bot for deploys to `gh-pages` branch:
          # https://github.com/actions/checkout/issues/13#issuecomment-724415212
          # The GH actions bot is used by default if you didn't specify the two fields.
          # You can swap them out with your own user credentials.
          user_name: github-actions[bot]
          user_email: 41898282+github-actions[bot]@users.noreply.github.com
