# SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
#
# SPDX-License-Identifier: AGPL-3.0-only

name: Frontend / Deploy develop branch to Netlify

on:
  push:
    branches: [ develop ]

env:
  NETLIFY_VERSION: 13.2.2
  NETLIFY_NEXTJS_PLUGIN_VERSION: 4.33.0
  NODEJS_VERSION: 20

defaults:
  run:
    working-directory: frontend

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

jobs:
  deploy:
    runs-on: ubuntu-latest
    name: Deploys to netlify
    steps:
      - name: Checkout repository
        uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0

      - name: Setup node
        uses: ./.github/actions/setup-node
        with:
          NODEJS_VERSION: ${{ env.NODEJS_VERSION }}

      - name: Patch intro.md to include netlify banner.
        run: cp netlify/intro.md public/public/intro.md

      - name: Patch motd.md to include privacy policy.
        run: cp netlify/motd.md public/public/motd.md

      - name: Patch base URL
        run: echo "HD_BASE_URL=\"https://hedgedoc.dev/\"" >> .env.production

      - name: Build app
        run: yarn turbo run build --filter=frontend
        shell: bash
        working-directory: .
        env:
          NEXT_PUBLIC_USE_MOCK_API: true
          TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
          TURBO_API: ${{ vars.TURBO_API }}
          TURBO_TEAM: ${{ vars.TURBO_TEAM }}

      - name: Remove Next.js cache to avoid it being deployed
        run: rm -r .next/cache

      - name: Install netlify CLI
        run: "yarn add --dev netlify-cli@${{ env.NETLIFY_VERSION }} @netlify/plugin-nextjs@${{ env.NETLIFY_NEXTJS_PLUGIN_VERSION }}"

      - name: Run netlify CLI deployment
        env:
          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
        run: "netlify deploy --build --prod --message \"${{ github.event.head_commit.id }}\""