on:
  push:
    branches: [main, master]
  pull_request:
    branches: [main, master]
  workflow_dispatch:
  schedule:
    # run every day at 11 PM
    - cron: '0 23 * * *'

name: Build book

env:
  isExtPR: ${{ github.event.pull_request.head.repo.fork == true }}

jobs:
  build:
    runs-on: ubuntu-latest
    env:
      GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
    steps:
      - uses: actions/checkout@v2

      - uses: r-lib/actions/setup-pandoc@v2

      - uses: r-lib/actions/setup-r@v2
        with:
          use-public-rspm: true

      - uses: r-lib/actions/setup-r-dependencies@v2

      - name: Cache bookdown results
        uses: actions/cache@v2
        with:
          path: _bookdown_files
          key: bookdown-3-${{ hashFiles('**/*Rmd') }}
          restore-keys: bookdown-3-

      - name: Build site
        run: |
          # Allows [implcit heading links] to work; will need to convert
          # to explicit before switching to visual editor
          options(bookdown.render.file_scope = FALSE)
          bookdown::render_book("index.Rmd")
        shell: Rscript {0}

      - name: Deploy to Netlify
        if: contains(env.isExtPR, 'false')
        id: netlify-deploy
        uses: nwtgck/actions-netlify@v1.1
        with:
          publish-dir: './_book'
          production-branch: main
          github-token: ${{ secrets.GITHUB_TOKEN }}
          deploy-message:
            'Deploy from GHA: ${{ github.event.pull_request.title || github.event.head_commit.message }} (${{ github.sha }})'
          enable-pull-request-comment: false
          enable-commit-comment: false
        env:
          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
          NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_2E }}
        timeout-minutes: 1