ci: unify DockerHub retag/push logic across base and service image workflows

This commit is contained in:
Haitao Pan 2025-12-06 22:50:28 +08:00
parent 6a5a593bac
commit 0cf1dd9b04
2 changed files with 26 additions and 32 deletions

View File

@ -110,29 +110,26 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Re-tag & Push image to Docker Hub
# -------------------------------------------------------------
# Re-tag & Push service image to Docker Hub
# -------------------------------------------------------------
- name: Re-tag & Push Image (Docker Hub)
if: env.PUSH_IMAGES == 'true'
env:
TARGET_NS: ${{ env.DOCKERHUB_NAMESPACE }}
TARGET_NS: ${{ inputs.dockerhub_namespace || github.event.inputs.dockerhub_namespace || 'manbuzhe2009' }}
run: |
ORIGIN_IMG="${{ env.REGISTRY }}/${{ env.ORG }}/${{ matrix.service.name }}@${{ steps.build.outputs.digest }}"
TARGET_REPO="docker.io/${TARGET_NS}/${{ matrix.service.name }}"
TAGS="${{ steps.meta.outputs.tags }}"
set -euo pipefail
echo "Origin: $ORIGIN_IMG"
echo "Target Namespace: $TARGET_NS"
echo "Target Repo: $TARGET_REPO"
SERVICE="${{ matrix.image.name }}"
ORIGIN_IMG="${{ env.REGISTRY }}/${{ env.ORG }}/${SERVICE}@${{ steps.build.outputs.digest }}"
TARGET_REPO="docker.io/${TARGET_NS}/${SERVICE}"
TAG_NAMES="${{ steps.meta.outputs.tag-names }}"
docker pull "$ORIGIN_IMG"
# 为所有 tag 逐个推送
for TAG in $TAGS; do
SHORT_TAG=$(echo "$TAG" | sed -E 's|.*/||') # 提取 tag 名称
echo "Tagging -> $TARGET_REPO:$SHORT_TAG"
docker tag "$ORIGIN_IMG" "$TARGET_REPO:$SHORT_TAG"
echo "Pushing -> $TARGET_REPO:$SHORT_TAG"
docker push "$TARGET_REPO:$SHORT_TAG"
echo "✓ Pushed: $TARGET_REPO:$SHORT_TAG"
for TAG in $TAG_NAMES; do
docker tag "$ORIGIN_IMG" "$TARGET_REPO:$TAG"
docker push "$TARGET_REPO:$TAG"
done
Security-service:

View File

@ -145,29 +145,26 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Re-tag & Push image to Docker Hub
# -------------------------------------------------------------
# Re-tag & Push image to Docker Hub
# -------------------------------------------------------------
- name: Re-tag & Push Service Image (Docker Hub)
if: env.PUSH_IMAGES == 'true'
env:
TARGET_NS: ${{ env.DOCKERHUB_NAMESPACE }}
TARGET_NS: ${{ inputs.dockerhub_namespace || github.event.inputs.dockerhub_namespace || 'manbuzhe2009' }}
run: |
ORIGIN_IMG="${{ env.REGISTRY }}/${{ env.ORG }}/${{ matrix.service.name }}@${{ steps.build.outputs.digest }}"
TARGET_REPO="docker.io/${TARGET_NS}/${{ matrix.service.name }}"
TAGS="${{ steps.meta.outputs.tags }}"
set -euo pipefail
echo "Origin: $ORIGIN_IMG"
echo "Target Namespace: $TARGET_NS"
echo "Target Repo: $TARGET_REPO"
SERVICE="${{ matrix.service.name }}"
ORIGIN_IMG="${{ env.REGISTRY }}/${{ env.ORG }}/${SERVICE}@${{ steps.build.outputs.digest }}"
TARGET_REPO="docker.io/${TARGET_NS}/${SERVICE}"
TAG_NAMES="${{ steps.meta.outputs.tag-names }}"
docker pull "$ORIGIN_IMG"
# 为所有 tag 逐个推送
for TAG in $TAGS; do
SHORT_TAG=$(echo "$TAG" | sed -E 's|.*/||') # 提取 tag 名称
echo "Tagging -> $TARGET_REPO:$SHORT_TAG"
docker tag "$ORIGIN_IMG" "$TARGET_REPO:$SHORT_TAG"
echo "Pushing -> $TARGET_REPO:$SHORT_TAG"
docker push "$TARGET_REPO:$SHORT_TAG"
echo "✓ Pushed: $TARGET_REPO:$SHORT_TAG"
for TAG in $TAG_NAMES; do
docker tag "$ORIGIN_IMG" "$TARGET_REPO:$TAG"
docker push "$TARGET_REPO:$TAG"
done
Security: