name: nightly-builds

on:
  workflow_dispatch:
  schedule:
    - cron: 0 4 * * 0-5

jobs:
  tag-nightly-build:
    runs-on: ubuntu-22.04
    outputs:
      tag: ${{ steps.tag-creation.outputs.tag }}
    steps:
      - name: nightly/checkout-repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - name: nightly/patch-version
        uses: ./.github/actions/patch-nightly-version
      - name: nightly/create-nightly-build-tag
        id: tag-creation
        run: |
          git config --global user.email "nightly-build@mattermost.com"
          git config --global user.name "Nightly Build"
          git checkout -b "$(jq -r .version package.json)"
          git add package.json
          git commit -m "Nightly build $(jq -r .version package.json)"
          git tag "$(jq -r .version package.json)" -m "Nightly build $(jq -r .version package.json)"
          git push --tags --force
          echo "tag=$(jq -r .version package.json)" >> $GITHUB_OUTPUT

  nightly-main:
    needs:
      - tag-nightly-build
    uses: ./.github/workflows/nightly-main.yml
    secrets: inherit
    with:
      tag: ${{ needs.tag-nightly-build.outputs.tag }}

  nightly-rainforest:
    needs:
      - tag-nightly-build
    uses: ./.github/workflows/nightly-rainforest.yml
    secrets: inherit
    with:
      tag: ${{ needs.tag-nightly-build.outputs.tag }}

  nightly-e2e:
    needs:
      - tag-nightly-build
    strategy:
      matrix:
        runs-on:
          - macos-15
          - ubuntu-22.04
          - windows-2022
    uses: ./.github/workflows/e2e-functional-template.yml
    secrets: inherit
    with:
      runs-on: ${{ matrix.runs-on }}
      nightly: true
      DESKTOP_VERSION: ${{ needs.tag-nightly-build.outputs.tag }}
