46 lines
1.1 KiB
Bash
Executable File
46 lines
1.1 KiB
Bash
Executable File
#!/bin/sh -e
|
|
#
|
|
# Keep only last week worth of CI runs, selected workflows
|
|
|
|
type -p gh > /dev/null || { echo "ERROR: gh tool not found"; exit 1; }
|
|
type -p jq > /dev/null || { echo "ERROR: jq tool not found"; exit 1; }
|
|
|
|
repo="kdave/btrfs-progs"
|
|
|
|
daysmax=8
|
|
|
|
clean_workflow() {
|
|
local wf="$1"
|
|
local json=$(gh run -R "$repo" list --limit 100 --workflow "$wf" --json databaseId,startedAt)
|
|
|
|
echo "Cleaning workflow $wf"
|
|
i=0
|
|
while :; do
|
|
id=$(echo "$json" | jq -r ".[$i].databaseId")
|
|
if [ "$id" == "null" -o -z "$id" ]; then
|
|
break
|
|
fi
|
|
echo "ID: $id"
|
|
now=$(date +%s)
|
|
date=$(echo "$json" | jq -r ".[$i].startedAt")
|
|
ts=$(date --date=${date} +%s)
|
|
delta=$(($now-$ts))
|
|
days=$(($delta/3600/24))
|
|
echo "Started at $id, delta $delta, days $days"
|
|
if [ "$days" -ge "$daysmax" ]; then
|
|
echo "Delete run $id"
|
|
gh run -R "$repo" delete "$id"
|
|
fi
|
|
|
|
# loop
|
|
i=$(($i+1))
|
|
done
|
|
}
|
|
|
|
clean_workflow "Testing CI build"
|
|
clean_workflow "Devel build and tests"
|
|
clean_workflow "Pull request build and tests"
|
|
clean_workflow "Codespell"
|
|
clean_workflow "CI image tests"
|
|
clean_workflow "Sanitizer checks"
|