name: Clean Nightly Releases on: # schedule: # - cron: '0 3 * * *' # Runs daily at 03:00 UTC workflow_dispatch: # Allows manual triggering jobs: clean-nightly: runs-on: ubuntu-latest permissions: contents: write packages: write steps: - name: Set up GitHub CLI uses: cli/cli-action@v2 - name: Authenticate GitHub CLI run: echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token - name: Get and clean old nightly releases env: GH_REPO: ${{ github.repository }} run: | # Get all release titles that match the nightly pattern mapfile -t releases < <( gh release list --limit 1000 --json tagName,name,createdAt --jq ' sort_by(.createdAt) | reverse | map(select(.name | test("^Nunchaku Nightly v[0-9]+\\.[0-9]+\\.[0-9]+dev[0-9]{8}$"))) | map(.tagName)' ) # Keep only the first 5 (latest), delete the rest if (( ${#releases[@]} > 5 )); then for tag in "${releases[@]:5}"; do echo "Deleting old release: $tag" gh release delete "$tag" --yes done else echo "Less than or equal to 5 nightly releases found. No cleanup needed." fi