Skip to content

Commit 61b2f53

Browse files
authored
Merge branch 'main' into update-container-image-creation
2 parents cd90d8d + 6d84a60 commit 61b2f53

File tree

21 files changed

+583
-239
lines changed

21 files changed

+583
-239
lines changed

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

Lines changed: 53 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,66 @@ on:
66
workflow_dispatch:
77

88
env:
9-
REGISTRY: ghcr.io/openmcp-project
9+
REGISTRY: ghcr.io
10+
ORG: openmcp-project
1011
IMAGE_NAME: mcp-ui-frontend
1112
KEEP_X_IMAGES: 5
13+
TAG_PREFIX: 'main-'
1214

1315
jobs:
1416
clean:
1517
name: 'Clean main images'
1618
runs-on: ubuntu-latest
1719
permissions:
1820
packages: write
21+
env:
22+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1923
steps:
20-
- name: Delete old main branch images
21-
uses: actions/delete-package-versions@e5bc658cc4c965c472efe991f8beea3981499c55 # v5
22-
with:
23-
package-name: ${{ env.IMAGE_NAME }}
24-
package-type: 'container'
25-
min-versions-to-keep: ${{ env.KEEP_X_IMAGES }}
26-
# Ignore any version that does NOT start with 'main-'
27-
ignore-versions: '^(?!main-).*$'
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

.github/workflows/main.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 #v3.10.0
5151

5252
- name: Build and push
53-
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
53+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
5454
with:
5555
context: .
5656
platforms: linux/amd64,linux/arm64

.github/workflows/on-release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363

6464
- name: Build and push Docker image
6565
id: push
66-
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
66+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
6767
with:
6868
context: .
6969
platforms: linux/amd64,linux/arm64

0 commit comments

Comments
 (0)