(feat): add cleanup for workflow runs and releases
All checks were successful
/ build-web (push) Successful in 3m6s
/ build-desktop (linux) (push) Successful in 8m3s
/ build-mobile (push) Successful in 23m13s
/ release (push) Successful in 52s

This commit is contained in:
Alois 2026-05-29 10:37:18 +02:00
commit dbd685bd43
3 changed files with 99 additions and 0 deletions

View file

@ -232,6 +232,46 @@ jobs:
-F "attachment=@$file"
done
- name: Delete dev releases for prod version
env:
TOKEN: ${{ forgejo.token }}
API: ${{ forgejo.api_url }}
REPO: ${{ forgejo.repository }}
TAG: ${{ steps.version.outputs.tag }}
run: |
set -eu
PAGE=1
PREFIX="$TAG-dev-"
DELETE_RELEASES=delete-dev-releases.tsv
: > "$DELETE_RELEASES"
while :; do
curl -fsS \
-H "Authorization: token $TOKEN" \
"$API/repos/$REPO/releases?page=$PAGE&limit=50&pre-release=true" \
-o releases.json
COUNT="$(jq 'length' releases.json)"
test "$COUNT" -gt 0 || break
jq -r \
--arg prefix "$PREFIX" \
'.[] | select(.prerelease == true) | select(.tag_name | startswith($prefix)) | [.id, .tag_name] | @tsv' releases.json \
>> "$DELETE_RELEASES"
PAGE="$((PAGE + 1))"
done
while IFS="$(printf '\t')" read -r release_id release_tag; do
test -n "$release_id" || continue
echo "Deleting dev release $release_tag"
curl -fsS -X DELETE \
-H "Authorization: token $TOKEN" \
"$API/repos/$REPO/releases/$release_id"
done < "$DELETE_RELEASES"
- name: Update root flake release hash
env:
TAG: ${{ steps.version.outputs.tag }}