name: Deploy to GitHub Pages

env:
    NODE_VERSION: 22

on:
    push:
        branches:
            - main
        # 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
    workflow_dispatch:

jobs:
    build:
        name: Build Docusaurus
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
              with:
                  fetch-depth: 0
            - uses: actions/setup-node@v4
              with:
                  node-version: ${{env.NODE_VERSION}}
            - name: Install yarn
              run: corepack enable && yarn install
            - name: Install dependencies
              run: yarn install --frozen-lockfile
            - name: Build website
              run: yarn build

            - name: Upload Build Artifact
              uses: actions/upload-pages-artifact@v3
              with:
                  path: build

    deploy:
        name: Deploy to GitHub Pages
        needs: build

        # Grant GITHUB_TOKEN the permissions required to make a Pages deployment
        permissions:
            pages: write # to deploy to Pages
            id-token: write # to verify the deployment originates from an appropriate source

        # Deploy to the github-pages environment
        environment:
            name: github-pages
            url: ${{ steps.deployment.outputs.page_url }}

        runs-on: ubuntu-latest
        steps:
            - name: Deploy to GitHub Pages
              id: deployment
              uses: actions/deploy-pages@v4
