name: Clean Old Nightly Releases
on:
  schedule:
    - cron: '* 6 * * *'
permissions:
  contents: write
jobs:
  cleanup:
    name: Delete old nightly releases and tags
    runs-on: ubuntu-latest
    if: github.repository == 'nunchaku-tech/nunchaku'
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: List all nightly releases
        id: list
        run: |
          gh release list --limit 100 --json tagName,isPrerelease,publishedAt \
            --jq '.[] | select(.isPrerelease == true) | .tagName' > nightly_tags.txt
          echo "Found $(wc -l < nightly_tags.txt) nightly releases."
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Trim to old tags beyond latest 30
        id: filter
        run: |
          tail -n +31 nightly_tags.txt > to_delete.txt || true
          echo "Tags to delete:"
          cat to_delete.txt || echo "(none)"
      - name: Delete releases and tags
        run: |
          while read tag; do
            echo "Deleting release and tag: $tag"
            gh release delete "$tag" -y || true
            git push origin --delete "$tag" || true
          done < to_delete.txt
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Done
        run: echo "Nightly cleanup completed."
