@@ -127,27 +127,10 @@ jobs:
127127 for endpoint in "orgs/DataSQRL" "user"; do
128128 echo "Trying endpoint: $endpoint"
129129
130- # Delete untagged versions
131- echo "Fetching untagged versions for $package_name..."
132- untagged_versions=$(gh api \
133- --method GET \
134- -H "Accept: application/vnd.github+json" \
135- "/$endpoint/packages/container/$package_name/versions" \
136- --jq '.[] | select(.metadata.container.tags | length == 0) | .id' 2>/dev/null || echo "")
137-
138- if [ -n "$untagged_versions" ]; then
139- echo "$untagged_versions" | while read -r version_id; do
140- if [ -n "$version_id" ]; then
141- echo "Deleting untagged version ID: $version_id"
142- gh api \
143- --method DELETE \
144- -H "Accept: application/vnd.github+json" \
145- "/$endpoint/packages/container/$package_name/versions/$version_id" || echo "Failed to delete version $version_id"
146- fi
147- done
148- else
149- echo "No untagged versions found for $package_name"
150- fi
130+ # Note: We don't delete "untagged" versions because in multi-arch images,
131+ # each architecture (amd64, arm64, etc.) is stored as a separate version
132+ # without tags, but is required for the multi-arch manifest to work.
133+ # Deleting these breaks multi-arch containers.
151134
152135 # Delete tagged versions older than 30 days (excluding dev, latest, and semver tags)
153136 echo "Fetching tagged versions older than $cutoff_date for $package_name (excluding dev, latest, and semver tags)..."
@@ -172,7 +155,7 @@ jobs:
172155 fi
173156
174157 # If we found versions, break out of endpoint loop
175- if [ -n "$untagged_versions" ] || [ -n "$ old_tagged_versions" ]; then
158+ if [ -n "$old_tagged_versions" ]; then
176159 break
177160 fi
178161 done
0 commit comments