diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 8b53ea8..9199a8a 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -48,7 +48,11 @@ jobs: echo "================================================" echo "" + # Clean up old binaries and create fresh directory + rm -rf dist/binaries mkdir -p dist/binaries + echo "→ Cleaned old binaries from dist/binaries" + echo "" # Linux x86_64 echo "→ Compiling for Linux x86_64..." @@ -165,6 +169,29 @@ jobs: dist/binaries/nupst-windows-x64.exe 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 run: | echo "================================================"