name: Docker Nightly Production

on:
  push:
    branches:
      - mealie-next
    paths-ignore:
      - '*.md'
      - '.devcontainer/**'
      # I'm not excluding .github as changes in there might be to workflows etc
      - '.vscode/**'
      - 'docs/**'

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

jobs:
  backend-tests:
    name: "Backend Server Tests"
    uses: ./.github/workflows/test-backend.yml

  frontend-tests:
    name: "Frontend Tests"
    uses: ./.github/workflows/test-frontend.yml

  build-package:
    name: Build Package
    uses: ./.github/workflows/build-package.yml
    with:
      tag: nightly

  publish:
    permissions:
      contents: read
      packages: write
      # The id-token write permission is needed to connect to Depot.dev
      # as part of the partial-builder.yml action. It needs to be declared
      # in the parent action, as noted here:
      # https://github.com/orgs/community/discussions/76409#discussioncomment-8131390
      id-token: write
    name: Build Tagged Release
    if: github.repository == 'mealie-recipes/mealie'
    uses: ./.github/workflows/publish.yml
    needs:
      - frontend-tests
      - backend-tests
      - build-package
    with:
      tag: nightly
    secrets:
      DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
      DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}

  notify-discord:
    name: Notify Discord
    if: github.repository == 'mealie-recipes/mealie'
    needs:
      - publish
    runs-on: ubuntu-latest
    steps:
      - name: Discord notification
        env:
          DISCORD_WEBHOOK: ${{ secrets.DISCORD_NIGHTLY_WEBHOOK }}
        uses: Ilshidur/action-discord@0.3.2
        with:
          args: "🚀  New builds of ghcr.io/mealie-recipes/mealie:nightly"
