on:
  workflow_dispatch:
  push:
    branches: 
      - main
      - prerelease
  workflow_call:
    inputs:
      ref: 
        required: true
        description: 'The ref to trigger the workflow on'
        type: string
      prerelease:
        required: true
        description: 'Whether to deploy prerelease or production site'
        type: boolean
        default: false

name: Quarto Publish

jobs:
  build-deploy:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - name: Check out repository
        uses: actions/checkout@v4

      - name: Set up Quarto
        uses: quarto-dev/quarto-actions/setup@v2

      - name: Render and Publish
        #if: ${{ format('{0}', inputs.prerelease) == 'false' }}
        if: ${{ format('{0}', inputs.prerelease) == 'false' || (!inputs.prerelease && contains(fromJSON('["push", "workflow_dispatch"]'), github.event_name) && github.ref == 'refs/heads/main') }}
        uses: quarto-dev/quarto-actions/publish@v2
        with:
          target: gh-pages
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Render and Publish to netlify
        # if: ${{ format('{0}', inputs.prerelease) != 'false' }}
        if: ${{ inputs.prerelease || (format('{0}', inputs.prerelease) != 'false' && contains(fromJSON('["push", "workflow_dispatch"]'), github.event_name) && github.ref == 'refs/heads/prerelease') }}
        uses: quarto-dev/quarto-actions/publish@v2
        with:
          target: netlify
          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}