@@ -248,28 +248,79 @@ jobs:
248248 cat /tmp/tags | xargs -i bash -c 'printf "%s" "-t {} " >> /tmp/tagargs'
249249 TAG_ARGS="$(cat /tmp/tagargs)"
250250 TAGS="$(cat /tmp/tags)"
251+
252+ # Add version tags for RELEASE branches (e.g., RELEASE_3_21 -> 3.21)
253+ for tag in $TAGS; do
254+ if [[ "$tag" == *"RELEASE_"* ]]; then
255+ # Extract the version number (e.g., RELEASE_3_21 -> 3.21)
256+ VERSION=$(echo "$tag" | sed -E 's/.*RELEASE_([0-9]+)_([0-9]+).*/\1.\2/')
257+ if [ ! -z "$VERSION" ]; then
258+ # Add the numeric version tag (e.g., 3.21)
259+ REGISTRY=$(echo "$tag" | cut -d':' -f1)
260+ TAG_ARGS="$TAG_ARGS -t ${REGISTRY}:${VERSION}"
261+ fi
262+ fi
263+ done
251264
252265 R_VER=$(docker pull ${{ matrix.base.image }}:${{ matrix.base.amdtag }} 2>&1 > /dev/null && \
253266 docker inspect ${{ matrix.base.image }}:${{ matrix.base.amdtag }} | \
254267 jq -r '.[].Config.Env[]|select(match("^R_VERSION"))|.[index("=")+1:]')
255268 if [ ! -z "$R_VER" ]; then
256269 for tag in $TAGS; do
257270 TAG_ARGS="$TAG_ARGS -t ${tag}-R-${R_VER} -t ${tag}-r-${R_VER}"
271+
272+ # For RELEASE branches, also add version-R tags
273+ if [[ "$tag" == *"RELEASE_"* ]]; then
274+ VERSION=$(echo "$tag" | sed -E 's/.*RELEASE_([0-9]+)_([0-9]+).*/\1.\2/')
275+ if [ ! -z "$VERSION" ]; then
276+ REGISTRY=$(echo "$tag" | cut -d':' -f1)
277+ TAG_ARGS="$TAG_ARGS -t ${REGISTRY}:${VERSION}-R-${R_VER} -t ${REGISTRY}:${VERSION}-r-${R_VER}"
278+ fi
279+ fi
258280 done
259281 fi
260282
261283 # Add alternative tags without _docker in name
262284 if [[ "${{ matrix.base.outname }}" == *"_docker"* ]]; then
263- ALT_TAG=$(echo $TAG_ARGS | sed 's/_docker//g')
264- TAG_ARGS="$TAG_ARGS $ALT_TAG"
285+ for tag in $TAGS; do
286+ # Extract registry and branch/version from tag
287+ REGISTRY=$(echo "$tag" | cut -d':' -f1)
288+ VERSION=$(echo "$tag" | cut -d':' -f2)
289+
290+ # Create new registry without _docker suffix
291+ NEW_REGISTRY=$(echo "$REGISTRY" | sed 's/_docker//g')
292+
293+ # Add tag without _docker in name
294+ TAG_ARGS="$TAG_ARGS -t ${NEW_REGISTRY}:${VERSION}"
295+
296+ # If it's a release branch, also add the numeric version tag
297+ if [[ "$VERSION" == RELEASE_* ]]; then
298+ NUM_VERSION=$(echo "$VERSION" | sed -E 's/RELEASE_([0-9]+)_([0-9]+).*/\1.\2/')
299+ if [ ! -z "$NUM_VERSION" ]; then
300+ TAG_ARGS="$TAG_ARGS -t ${NEW_REGISTRY}:${NUM_VERSION}"
301+ fi
302+ fi
303+
304+ # If R_VER exists, add R version tags for the non-_docker version
305+ if [ ! -z "$R_VER" ]; then
306+ TAG_ARGS="$TAG_ARGS -t ${NEW_REGISTRY}:${VERSION}-R-${R_VER} -t ${NEW_REGISTRY}:${VERSION}-r-${R_VER}"
307+
308+ # If it's a release branch, also add R version tags for numeric version
309+ if [[ "$VERSION" == RELEASE_* ]]; then
310+ NUM_VERSION=$(echo "$VERSION" | sed -E 's/RELEASE_([0-9]+)_([0-9]+).*/\1.\2/')
311+ if [ ! -z "$NUM_VERSION" ]; then
312+ TAG_ARGS="$TAG_ARGS -t ${NEW_REGISTRY}:${NUM_VERSION}-R-${R_VER} -t ${NEW_REGISTRY}:${NUM_VERSION}-r-${R_VER}"
313+ fi
314+ fi
315+ fi
316+ done
265317 fi
266318
267- CONTAINERNAME=$(echo '${{ steps.meta1.outputs.tags }}' | awk -F':' '{print $1}')
268-
269319 # Create manifest list
270320 DIGESTS=""
321+ BASE_REGISTRY=$(echo '${{ steps.meta1.outputs.tags }}' | awk -F':' '{print $1}')
271322 for eachdir in $(ls /tmp/digests); do
272- DIGESTS_ARCH=$(cd /tmp/digests/$eachdir && find . -type f -exec echo "$CONTAINERNAME @sha256{}" \; | sed 's/\.\//:/')
323+ DIGESTS_ARCH=$(cd /tmp/digests/$eachdir && find . -type f -exec echo "$BASE_REGISTRY @sha256{}" \; | sed 's/\.\//:/')
273324 DIGESTS="$DIGESTS $DIGESTS_ARCH"
274325 done
275326 echo "$TAG_ARGS"
@@ -278,4 +329,35 @@ jobs:
278329
279330 - name : Inspect images
280331 run : |
281- cat /tmp/tags | xargs -i bash -c 'docker buildx imagetools inspect {}'
332+ # Get registry prefixes
333+ REGISTRY_PREFIXES=$(cat /tmp/tags | awk -F':' '{print $1}' | sort -u)
334+ BRANCH=$(cat /tmp/tags | head -1 | awk -F':' '{print $2}')
335+
336+ # Inspect all created tags
337+ for prefix in $REGISTRY_PREFIXES; do
338+ # Base tag
339+ echo "Inspecting: $prefix:$BRANCH"
340+ docker buildx imagetools inspect "$prefix:$BRANCH"
341+
342+ # Without _docker suffix if applicable
343+ if [[ "${{ matrix.base.outname }}" == *"_docker"* ]]; then
344+ NO_DOCKER_PREFIX=$(echo "$prefix" | sed 's/_docker//g')
345+ echo "Inspecting: $NO_DOCKER_PREFIX:$BRANCH"
346+ docker buildx imagetools inspect "$NO_DOCKER_PREFIX:$BRANCH"
347+ fi
348+
349+ # Version tag for release branches
350+ if [[ "$BRANCH" == RELEASE_* ]]; then
351+ VERSION=$(echo "$BRANCH" | sed -E 's/RELEASE_([0-9]+)_([0-9]+).*/\1.\2/')
352+ if [ ! -z "$VERSION" ]; then
353+ echo "Inspecting: $prefix:$VERSION"
354+ docker buildx imagetools inspect "$prefix:$VERSION"
355+
356+ # Without _docker suffix if applicable
357+ if [[ "${{ matrix.base.outname }}" == *"_docker"* ]]; then
358+ echo "Inspecting: $NO_DOCKER_PREFIX:$VERSION"
359+ docker buildx imagetools inspect "$NO_DOCKER_PREFIX:$VERSION"
360+ fi
361+ fi
362+ fi
363+ done
0 commit comments