@@ -250,34 +250,79 @@ jobs:
250
250
cat /tmp/tags | xargs -i bash -c 'printf "%s" "-t {} " >> /tmp/tagargs'
251
251
TAG_ARGS="$(cat /tmp/tagargs)"
252
252
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
253
266
254
267
R_VER=$(docker pull ${{ matrix.base.image }}:${{ matrix.base.amdtag }} 2>&1 > /dev/null && \
255
268
docker inspect ${{ matrix.base.image }}:${{ matrix.base.amdtag }} | \
256
269
jq -r '.[].Config.Env[]|select(match("^R_VERSION"))|.[index("=")+1:]')
257
270
if [ ! -z "$R_VER" ]; then
258
271
for tag in $TAGS; do
259
272
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
260
282
done
261
283
fi
262
284
263
285
# Add alternative tags without _docker in name
264
286
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
273
319
fi
274
320
275
- CONTAINERNAME=$(echo '${{ steps.meta1.outputs.tags }}' | awk -F':' '{print $1}')
276
-
277
321
# Create manifest list
278
322
DIGESTS=""
323
+ BASE_REGISTRY=$(echo '${{ steps.meta1.outputs.tags }}' | awk -F':' '{print $1}')
279
324
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/\.\//:/')
281
326
DIGESTS="$DIGESTS $DIGESTS_ARCH"
282
327
done
283
328
echo "$TAG_ARGS"
@@ -286,7 +331,38 @@ jobs:
286
331
287
332
- name : Inspect images
288
333
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
290
366
291
367
trigger-extensions :
292
368
needs : [merge]
0 commit comments