(feat): remove cleanup workflow #16
1 changed files with 0 additions and 58 deletions
|
|
@ -1,58 +0,0 @@
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
schedule:
|
|
||||||
- cron: "30 3 * * *"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
cleanup-workflow-runs:
|
|
||||||
runs-on: docker
|
|
||||||
steps:
|
|
||||||
- name: Install Packages
|
|
||||||
run: apt-get update && apt-get install -y curl jq
|
|
||||||
|
|
||||||
- name: Delete workflow runs older than 14 days
|
|
||||||
env:
|
|
||||||
TOKEN: ${{ forgejo.token }}
|
|
||||||
API: ${{ forgejo.api_url }}
|
|
||||||
REPO: ${{ forgejo.repository }}
|
|
||||||
CURRENT_RUN_ID: ${{ forgejo.run_id }}
|
|
||||||
run: |
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
CUTOFF="$(date -u -d "14 days ago" +"%Y-%m-%dT%H:%M:%SZ")"
|
|
||||||
PAGE=1
|
|
||||||
DELETE_IDS=delete-workflow-runs.txt
|
|
||||||
|
|
||||||
: > "$DELETE_IDS"
|
|
||||||
|
|
||||||
while :; do
|
|
||||||
curl -fsS \
|
|
||||||
-H "Authorization: token $TOKEN" \
|
|
||||||
"$API/repos/$REPO/actions/runs?page=$PAGE&limit=50" \
|
|
||||||
-o runs.json
|
|
||||||
|
|
||||||
COUNT="$(jq 'if type == "array" then length else (.workflow_runs // []) | length end' runs.json)"
|
|
||||||
test "$COUNT" -gt 0 || break
|
|
||||||
|
|
||||||
jq -r \
|
|
||||||
--arg cutoff "$CUTOFF" \
|
|
||||||
--arg current "$CURRENT_RUN_ID" \
|
|
||||||
'if type == "array" then . else (.workflow_runs // []) end
|
|
||||||
| .[]
|
|
||||||
| select(type == "object")
|
|
||||||
| select((.id | tostring) != $current)
|
|
||||||
| select((.status // .conclusion) as $status | ["success", "failure", "cancelled", "skipped", "succeeded", "failed"] | index($status))
|
|
||||||
| select((.created // .created_at) < $cutoff)
|
|
||||||
| .id' runs.json \
|
|
||||||
>> "$DELETE_IDS"
|
|
||||||
|
|
||||||
PAGE="$((PAGE + 1))"
|
|
||||||
done
|
|
||||||
|
|
||||||
while IFS= read -r run_id; do
|
|
||||||
test -n "$run_id" || continue
|
|
||||||
echo "Deleting workflow run $run_id"
|
|
||||||
curl -fsS -X DELETE \
|
|
||||||
-H "Authorization: token $TOKEN" \
|
|
||||||
"$API/repos/$REPO/actions/runs/$run_id"
|
|
||||||
done < "$DELETE_IDS"
|
|
||||||
Loading…
Reference in a new issue