Skip to content

Commit 1bfa6ce

Browse files
committed
Fix tagging port from RELEASE_3_21
1 parent 094d59f commit 1bfa6ce

File tree

1 file changed

+88
-12
lines changed

1 file changed

+88
-12
lines changed

.github/workflows/build_containers.yaml

Lines changed: 88 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -250,34 +250,79 @@ jobs:
250250
cat /tmp/tags | xargs -i bash -c 'printf "%s" "-t {} " >> /tmp/tagargs'
251251
TAG_ARGS="$(cat /tmp/tagargs)"
252252
TAGS="$(cat /tmp/tags)"
253+
254+
# Add version tags for RELEASE branches (e.g., RELEASE_3_21 -> 3.21)
255+
for tag in $TAGS; do
256+
if [[ "$tag" == *"RELEASE_"* ]]; then
257+
# Extract the version number (e.g., RELEASE_3_21 -> 3.21)
258+
VERSION=$(echo "$tag" | sed -E 's/.*RELEASE_([0-9]+)_([0-9]+).*/\1.\2/')
259+
if [ ! -z "$VERSION" ]; then
260+
# Add the numeric version tag (e.g., 3.21)
261+
REGISTRY=$(echo "$tag" | cut -d':' -f1)
262+
TAG_ARGS="$TAG_ARGS -t ${REGISTRY}:${VERSION}"
263+
fi
264+
fi
265+
done
253266
254267
R_VER=$(docker pull ${{ matrix.base.image }}:${{ matrix.base.amdtag }} 2>&1 > /dev/null && \
255268
docker inspect ${{ matrix.base.image }}:${{ matrix.base.amdtag }} | \
256269
jq -r '.[].Config.Env[]|select(match("^R_VERSION"))|.[index("=")+1:]')
257270
if [ ! -z "$R_VER" ]; then
258271
for tag in $TAGS; do
259272
TAG_ARGS="$TAG_ARGS -t ${tag}-R-${R_VER} -t ${tag}-r-${R_VER}"
273+
274+
# For RELEASE branches, also add version-R tags
275+
if [[ "$tag" == *"RELEASE_"* ]]; then
276+
VERSION=$(echo "$tag" | sed -E 's/.*RELEASE_([0-9]+)_([0-9]+).*/\1.\2/')
277+
if [ ! -z "$VERSION" ]; then
278+
REGISTRY=$(echo "$tag" | cut -d':' -f1)
279+
TAG_ARGS="$TAG_ARGS -t ${REGISTRY}:${VERSION}-R-${R_VER} -t ${REGISTRY}:${VERSION}-r-${R_VER}"
280+
fi
281+
fi
260282
done
261283
fi
262284

263285
# Add alternative tags without _docker in name
264286
if [[ "${{ matrix.base.outname }}" == *"_docker"* ]]; then
265-
ALT_TAG=$(echo $TAG_ARGS | sed 's/_docker//g')
266-
TAG_ARGS="$TAG_ARGS $ALT_TAG"
267-
fi
268-
269-
# Add alternative tags without RELEASE_ in the tag
270-
if grep -q "RELEASE_" <<< "$TAG_ARGS"; then
271-
ALT_TAG=$(echo $TAG_ARGS | sed -E 's/RELEASE_([0-9]+)_([0-9]+)/\1.\2/g')
272-
TAG_ARGS="$TAG_ARGS $ALT_TAG"
287+
for tag in $TAGS; do
288+
# Extract registry and branch/version from tag
289+
REGISTRY=$(echo "$tag" | cut -d':' -f1)
290+
VERSION=$(echo "$tag" | cut -d':' -f2)
291+
292+
# Create new registry without _docker suffix
293+
NEW_REGISTRY=$(echo "$REGISTRY" | sed 's/_docker//g')
294+
295+
# Add tag without _docker in name
296+
TAG_ARGS="$TAG_ARGS -t ${NEW_REGISTRY}:${VERSION}"
297+
298+
# If it's a release branch, also add the numeric version tag
299+
if [[ "$VERSION" == RELEASE_* ]]; then
300+
NUM_VERSION=$(echo "$VERSION" | sed -E 's/RELEASE_([0-9]+)_([0-9]+).*/\1.\2/')
301+
if [ ! -z "$NUM_VERSION" ]; then
302+
TAG_ARGS="$TAG_ARGS -t ${NEW_REGISTRY}:${NUM_VERSION}"
303+
fi
304+
fi
305+
306+
# If R_VER exists, add R version tags for the non-_docker version
307+
if [ ! -z "$R_VER" ]; then
308+
TAG_ARGS="$TAG_ARGS -t ${NEW_REGISTRY}:${VERSION}-R-${R_VER} -t ${NEW_REGISTRY}:${VERSION}-r-${R_VER}"
309+
310+
# If it's a release branch, also add R version tags for numeric version
311+
if [[ "$VERSION" == RELEASE_* ]]; then
312+
NUM_VERSION=$(echo "$VERSION" | sed -E 's/RELEASE_([0-9]+)_([0-9]+).*/\1.\2/')
313+
if [ ! -z "$NUM_VERSION" ]; then
314+
TAG_ARGS="$TAG_ARGS -t ${NEW_REGISTRY}:${NUM_VERSION}-R-${R_VER} -t ${NEW_REGISTRY}:${NUM_VERSION}-r-${R_VER}"
315+
fi
316+
fi
317+
fi
318+
done
273319
fi
274320

275-
CONTAINERNAME=$(echo '${{ steps.meta1.outputs.tags }}' | awk -F':' '{print $1}')
276-
277321
# Create manifest list
278322
DIGESTS=""
323+
BASE_REGISTRY=$(echo '${{ steps.meta1.outputs.tags }}' | awk -F':' '{print $1}')
279324
for eachdir in $(ls /tmp/digests); do
280-
DIGESTS_ARCH=$(cd /tmp/digests/$eachdir && find . -type f -exec echo "$CONTAINERNAME@sha256{}" \; | sed 's/\.\//:/')
325+
DIGESTS_ARCH=$(cd /tmp/digests/$eachdir && find . -type f -exec echo "$BASE_REGISTRY@sha256{}" \; | sed 's/\.\//:/')
281326
DIGESTS="$DIGESTS $DIGESTS_ARCH"
282327
done
283328
echo "$TAG_ARGS"
@@ -286,7 +331,38 @@ jobs:
286331

287332
- name: Inspect images
288333
run: |
289-
cat /tmp/tags | xargs -i bash -c 'docker buildx imagetools inspect {}'
334+
# Get registry prefixes
335+
REGISTRY_PREFIXES=$(cat /tmp/tags | awk -F':' '{print $1}' | sort -u)
336+
BRANCH=$(cat /tmp/tags | head -1 | awk -F':' '{print $2}')
337+
338+
# Inspect all created tags
339+
for prefix in $REGISTRY_PREFIXES; do
340+
# Base tag
341+
echo "Inspecting: $prefix:$BRANCH"
342+
docker buildx imagetools inspect "$prefix:$BRANCH"
343+
344+
# Without _docker suffix if applicable
345+
if [[ "${{ matrix.base.outname }}" == *"_docker"* ]]; then
346+
NO_DOCKER_PREFIX=$(echo "$prefix" | sed 's/_docker//g')
347+
echo "Inspecting: $NO_DOCKER_PREFIX:$BRANCH"
348+
docker buildx imagetools inspect "$NO_DOCKER_PREFIX:$BRANCH"
349+
fi
350+
351+
# Version tag for release branches
352+
if [[ "$BRANCH" == RELEASE_* ]]; then
353+
VERSION=$(echo "$BRANCH" | sed -E 's/RELEASE_([0-9]+)_([0-9]+).*/\1.\2/')
354+
if [ ! -z "$VERSION" ]; then
355+
echo "Inspecting: $prefix:$VERSION"
356+
docker buildx imagetools inspect "$prefix:$VERSION"
357+
358+
# Without _docker suffix if applicable
359+
if [[ "${{ matrix.base.outname }}" == *"_docker"* ]]; then
360+
echo "Inspecting: $NO_DOCKER_PREFIX:$VERSION"
361+
docker buildx imagetools inspect "$NO_DOCKER_PREFIX:$VERSION"
362+
fi
363+
fi
364+
fi
365+
done
290366
291367
trigger-extensions:
292368
needs: [merge]

0 commit comments

Comments
 (0)