Skip to content

Commit 2b64a68

Browse files
committed
added switch for dryrun
1 parent 21bd075 commit 2b64a68

File tree

1 file changed

+9
-60
lines changed

1 file changed

+9
-60
lines changed

.github/workflows/clean-main-images.yml

Lines changed: 9 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ on:
44
schedule:
55
- cron: '5 1 * * *'
66
workflow_dispatch:
7+
inputs:
8+
dry-run:
9+
description: 'Dry run'
10+
required: false
11+
default: true
12+
type: 'boolean'
713

814
env:
915
REGISTRY: ghcr.io
@@ -13,72 +19,15 @@ env:
1319
TAG_PREFIX: 'main-'
1420

1521
jobs:
16-
# clean:
17-
# name: 'Clean main images'
18-
# runs-on: ubuntu-latest
19-
# permissions:
20-
# packages: write
21-
# env:
22-
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23-
# steps:
24-
# - name: List all ${{ env.TAG_PREFIX }} tags and their version IDs (debug)
25-
# run: |
26-
# gh api -H "Accept: application/vnd.github+json" \
27-
# /orgs/${{ env.ORG }}/packages/container/${{ env.IMAGE_NAME }}/versions \
28-
# --paginate | jq -r '.[] | select(.metadata.container.tags[] | startswith("${{ env.TAG_PREFIX }}")) | "\(.id) \(.metadata.container.tags[])"' | grep '^.* ${{ env.TAG_PREFIX }}' | sort -k2 -r
29-
30-
# - name: Delete old ${{ env.TAG_PREFIX }}* tags using GitHub API, keep ${{ env.KEEP_X_IMAGES }}
31-
# run: |
32-
# set -e
33-
# set -o pipefail
34-
35-
# # Get all ${{ env.TAG_PREFIX }}* tags and their version IDs, sorted by tag (descending)
36-
# VERSIONS=$(gh api -H "Accept: application/vnd.github+json" \
37-
# /orgs/${{ env.ORG }}/packages/container/${{ env.IMAGE_NAME }}/versions \
38-
# --paginate | jq -r '.[] | select(.metadata.container.tags[] | startswith("${{ env.TAG_PREFIX }}")) | "\(.id) \(.metadata.container.tags[])"' | grep '^.* ${{ env.TAG_PREFIX }}' | sort -k2 -r)
39-
40-
# # Get the lines to delete (skip the first ${{ env.KEEP_X_IMAGES }} versions)
41-
# TO_DELETE=$(echo "$VERSIONS" | sed "1,${{ env.KEEP_X_IMAGES }}d")
42-
43-
# echo "Deleting the following tags:"
44-
# echo "$TO_DELETE" | awk '{print $2}'
45-
46-
# if [ -z "$TO_DELETE" ]; then
47-
# echo "No tags to delete."
48-
# exit 0
49-
# fi
50-
51-
# FAILED_DELETIONS=""
52-
# while read -r line; do
53-
# id=$(echo "$line" | awk '{print $1}')
54-
# tag=$(echo "$line" | awk '{print $2}')
55-
# echo "Deleting tag $tag (version ID $id)"
56-
# if ! gh api -X DELETE -H "Accept: application/vnd.github+json" \
57-
# /orgs/${{ env.ORG }}/packages/container/${{ env.IMAGE_NAME }}/versions/$id; then
58-
# echo "Failed to delete version $id ($tag)"
59-
# FAILED_DELETIONS="${FAILED_DELETIONS}\n$id ($tag)"
60-
# fi
61-
# done <<< "$TO_DELETE"
62-
63-
# if [ -n "$FAILED_DELETIONS" ]; then
64-
# echo -e "The following deletions failed:\n$FAILED_DELETIONS"
65-
# exit 1
66-
# fi
67-
# - name: List remaining ${{ env.TAG_PREFIX }}* tags and their version IDs (debug)
68-
# run: |
69-
# gh api -H "Accept: application/vnd.github+json" \
70-
# /orgs/${{ env.ORG }}/packages/container/${{ env.IMAGE_NAME }}/versions \
71-
# --paginate | jq -r '.[] | select(.metadata.container.tags[] | startswith("${{ env.TAG_PREFIX }}")) | "\(.id) \(.metadata.container.tags[])"' | grep '^.* ${{ env.TAG_PREFIX }}' | sort -k2 -r
72-
73-
delete-untagged-images:
74-
name: Delete Untagged Images
22+
clean:
23+
name: Clean main images
7524
runs-on: ubuntu-latest
7625
permissions:
7726
packages: write
7827
steps:
7928
- uses: dataaxiom/ghcr-cleanup-action@v1
8029
with:
81-
dry-run: true
30+
dry-run: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run == true }}
8231
packages: ${{ env.IMAGE_NAME }}
8332
delete-tags: main-*
8433
delete-untagged: true

0 commit comments

Comments
 (0)