38 lines
1.1 KiB
Bash
Executable File
38 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Configuration: workflow file name can be provided as the first argument, defaults to llvm.yml
|
|
WORKFLOW_FILE_NAME="${1:-llvm.yml}"
|
|
RUN_LIMIT=1000
|
|
|
|
echo "Searching for all runs of workflow ${WORKFLOW_FILE_NAME}..."
|
|
|
|
# Retrieve all workflow run IDs
|
|
RUN_IDS=$(gh run list --workflow "${WORKFLOW_FILE_NAME}" --json databaseId --jq '.[].databaseId' --limit $RUN_LIMIT)
|
|
|
|
if [ -z "$RUN_IDS" ]; then
|
|
echo "No runs found for workflow ${WORKFLOW_FILE_NAME}."
|
|
exit 0
|
|
fi
|
|
|
|
echo "Found the following Run IDs:"
|
|
echo "$RUN_IDS"
|
|
echo "---"
|
|
|
|
# Loop and delete each workflow run (and its Artifacts)
|
|
echo "Starting deletion of runs and their Artifacts..."
|
|
|
|
for RUN_ID in $RUN_IDS; do
|
|
echo "Deleting Run ID: ${RUN_ID}..."
|
|
# Older gh releases may not support --confirm; pipe "y" to avoid interactive prompt.
|
|
if yes | gh run delete "${RUN_ID}"; then
|
|
echo "Successfully deleted Run ${RUN_ID}."
|
|
else
|
|
echo "Failed to delete Run ${RUN_ID}!"
|
|
fi
|
|
sleep 0.5
|
|
done
|
|
|
|
echo ""
|
|
echo "---"
|
|
echo "All workflow runs and associated Artifacts have been processed."
|