mirror of
https://github.com/armbian/community.git
synced 2026-01-06 10:36:43 -08:00
Add action for purging old (pre)releases (#36)
This commit is contained in:
33
.github/workflows/delete-old-releases.yml
vendored
Normal file
33
.github/workflows/delete-old-releases.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Delete Old Releases
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 3 * * *' # Daily at 03:00 UTC
|
||||
workflow_dispatch: # Manual trigger
|
||||
|
||||
jobs:
|
||||
clean_releases:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Delete old releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
# Get all releases (handle pagination)
|
||||
releases=$(gh api --paginate repos/${{ github.repository }}/releases)
|
||||
|
||||
# Process full releases
|
||||
full_releases=$(echo "$releases" | jq -c '[.[] | select(.prerelease == false)] | sort_by(.created_at) | reverse')
|
||||
full_to_delete=$(echo "$full_releases" | jq '.[3:] | .[].id')
|
||||
for id in $full_to_delete; do
|
||||
echo "Deleting old full release ID: $id"
|
||||
gh api --method DELETE repos/${{ github.repository }}/releases/$id
|
||||
done
|
||||
|
||||
# Process pre-releases
|
||||
pre_releases=$(echo "$releases" | jq -c '[.[] | select(.prerelease == true)] | sort_by(.created_at) | reverse')
|
||||
pre_to_delete=$(echo "$pre_releases" | jq '.[3:] | .[].id')
|
||||
for id in $pre_to_delete; do
|
||||
echo "Deleting old pre-release ID: $id"
|
||||
gh api --method DELETE repos/${{ github.repository }}/releases/$id
|
||||
done
|
||||
Reference in New Issue
Block a user