ci(release): add automatic cleanup of old binaries and releases

- Clean old binaries from dist/binaries before each build
- Automatically delete old releases, keeping only the last 3
- Prevents accumulation of stale binaries and release storage bloat
This commit is contained in:
2025-10-19 13:12:18 +00:00
parent e1383097b2
commit b935087d50

View File

@@ -48,7 +48,11 @@ jobs:
echo "================================================" echo "================================================"
echo "" echo ""
# Clean up old binaries and create fresh directory
rm -rf dist/binaries
mkdir -p dist/binaries mkdir -p dist/binaries
echo "→ Cleaned old binaries from dist/binaries"
echo ""
# Linux x86_64 # Linux x86_64
echo "→ Compiling for Linux x86_64..." echo "→ Compiling for Linux x86_64..."
@@ -165,6 +169,29 @@ jobs:
dist/binaries/nupst-windows-x64.exe dist/binaries/nupst-windows-x64.exe
dist/binaries/SHA256SUMS.txt dist/binaries/SHA256SUMS.txt
- name: Clean up old releases
run: |
echo "Cleaning up old releases (keeping only last 3)..."
# Fetch all releases sorted by creation date
RELEASES=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"https://code.foss.global/api/v1/repos/serve.zone/nupst/releases" | \
jq -r 'sort_by(.created_at) | reverse | .[3:] | .[].id')
# Delete old releases
if [ -n "$RELEASES" ]; then
echo "Found releases to delete:"
for release_id in $RELEASES; do
echo " Deleting release ID: $release_id"
curl -X DELETE -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"https://code.foss.global/api/v1/repos/serve.zone/nupst/releases/$release_id"
done
echo "Old releases deleted successfully"
else
echo "No old releases to delete (less than 4 releases total)"
fi
echo ""
- name: Release Summary - name: Release Summary
run: | run: |
echo "================================================" echo "================================================"