name: Nightly

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

env:
  PYTHON_VERSION: "3.14"
  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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

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

      - name: Setup Node
        uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
        with:
          name: wheels
          path: dist/home_assistant_frontend*.whl
          if-no-files-found: error

      - name: Upload translations
        uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
        with:
          name: translations
          path: translations.tar.gz
          if-no-files-found: error
