name: 'dhis2: pr preview'

# Requirements:
#
# - Org secrets:
#       DHIS2_BOT_NETLIFY_TOKEN
#       DHIS2_BOT_GITHUB_TOKEN
# - Repo secrets:
#       NETLIFY_SITE_ID
# - Customize the 'jobs.build.steps.netlify-deploy.publish-dir' property

on:
    pull_request:

concurrency:
    group: ${{ github.workflow}}-${{ github.ref }}
    cancel-in-progress: true

jobs:
    preview:
        runs-on: ubuntu-latest
        if: "!github.event.push.repository.fork && github.actor != 'dependabot[bot]'"
        steps:
            - uses: actions/checkout@v4
            - uses: actions/setup-node@v4
              with:
                  node-version: 18.x

            - uses: c-hive/gha-yarn-cache@v2
            - run: yarn install --frozen-lockfile

            - name: Build
              run: yarn d2-app-scripts build --standalone

            - name: Deploy
              id: netlify-deploy
              uses: nwtgck/actions-netlify@v3
              timeout-minutes: 1
              with:
                  github-token: ${{ secrets.DHIS2_BOT_GITHUB_TOKEN }}
                  github-deployment-environment: 'netlify'
                  github-deployment-description: 'PR Preview on Netlify'
                  deploy-message: ${{ github.event.pull_request.title }}
                  enable-pull-request-comment: true
                  enable-commit-comment: true
                  enable-commit-status: true
                  alias: pr-${{ github.event.number }}
                  # customize according to project needs
                  publish-dir: 'build/app'
              env:
                  # org secret
                  NETLIFY_AUTH_TOKEN: ${{ secrets.DHIS2_BOT_NETLIFY_TOKEN }}
                  # repo secret
                  NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
