name: Upload nightly wheels to Anaconda Cloud

on:
  # Run daily at 2:34 UTC to upload nightly wheels to Anaconda Cloud
  schedule:
    - cron: "34 2 * * *"
  # Run on demand with workflow dispatch
  workflow_dispatch:

permissions:
  actions: read

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

jobs:
  build_wheel:
    name: Build and upload wheel
    if: github.repository_owner == 'pybind'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0

      - name: Install uv
        uses: astral-sh/setup-uv@v7

      - name: Build SDist and wheels
        run: |
          uv tool install nox
          nox -s build
          nox -s build_global

      - uses: actions/upload-artifact@v6
        with:
          name: Packages
          path: dist/*

  upload_nightly_wheels:
    name: Upload nightly wheels to Anaconda Cloud
    if: github.repository_owner == 'pybind'
    needs: [build_wheel]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/download-artifact@v7
        with:
          name: Packages
          path: dist

      - name: List wheel to be deployed
        run: ls -lha dist/*.whl

      - name: Upload wheel to Anaconda Cloud as nightly
        uses: scientific-python/upload-nightly-action@5748273c71e2d8d3a61f3a11a16421c8954f9ecf # 0.6.3
        with:
          artifacts_path: dist
          anaconda_nightly_upload_token: ${{ secrets.ANACONDA_ORG_UPLOAD_TOKEN }}
