name: Nightly

on:
  workflow_dispatch:
  schedule:
    - cron: "0 1 * * *"

env:
  PYTHON_VERSION: "3.13"
  NODE_OPTIONS: --max_old_space_size=6144

permissions:
  actions: none

jobs:
  nightly:
    name: Nightly
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - name: Checkout the repository
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

      - name: Set up Python ${{ env.PYTHON_VERSION }}
        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
        with:
          python-version: ${{ env.PYTHON_VERSION }}

      - name: Setup Node
        uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
        with:
          node-version-file: ".nvmrc"
          cache: yarn

      - name: Install dependencies
        run: yarn install

      - name: Download translations
        run: ./script/translations_download
        env:
          LOKALISE_TOKEN: ${{ secrets.LOKALISE_TOKEN }}

      - name: Bump version
        run: script/version_bump.js nightly

      - name: Build nightly Python wheels
        run: |
          pip install build
          yarn install
          export SKIP_FETCH_NIGHTLY_TRANSLATIONS=1
          script/build_frontend
          rm -rf dist home_assistant_frontend.egg-info
          python3 -m build

      - name: Archive translations
        run: tar -czvf translations.tar.gz translations

      - name: Upload build artifacts
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
        with:
          name: wheels
          path: dist/home_assistant_frontend*.whl
          if-no-files-found: error

      - name: Upload translations
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
        with:
          name: translations
          path: translations.tar.gz
          if-no-files-found: error
