From 125daf9cdb27048d17af86adbfabf9d2675478f9 Mon Sep 17 00:00:00 2001 From: Nageshbansal <76246968+Nageshbansal@users.noreply.github.com> Date: Mon, 13 Mar 2023 14:56:31 +0530 Subject: [PATCH] Fixes Publish to Github Packages (#18180) 1. Creates a publishPackages function in tools/release/release_utils.sh 2. Uses the publishPackages function in publish_release workflow Fixes issue 18138 Signed-off-by: Nagesh Bansal Co-authored-by: Wang Yan --- .github/workflows/publish_release.yml | 5 ++++- tools/release/release_utils.sh | 18 +++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 1a274ec5e..44103215d 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -58,7 +58,10 @@ jobs: run: | tar -zxf ${{ env.OFFLINE_PACKAGE_PATH }} docker load -i ./harbor/harbor.${{ env.BASE_TAG }}.tar.gz - source tools/release/release_utils.sh && publishImages ${{ env.CUR_TAG }} ${{ env.BASE_TAG }} ${{ secrets.DOCKER_HUB_USERNAME }} ${{ secrets.DOCKER_HUB_PASSWORD }} + images="$(docker images --format "{{.Repository}}" --filter=reference='goharbor/*:${{ env.BASE_TAG }}' | xargs)" + source tools/release/release_utils.sh + publishImages ${{ env.CUR_TAG }} ${{ env.BASE_TAG }} ${{ secrets.DOCKER_HUB_USERNAME }} ${{ secrets.DOCKER_HUB_PASSWORD }} $images + publishPackages ${{ env.CUR_TAG }} ${{ env.BASE_TAG }} ${{ github.actor }} ${{ secrets.GITHUB_TOKEN }} $images - name: Generate release notes run: | release_notes_path=$(pwd)/release-notes.txt diff --git a/tools/release/release_utils.sh b/tools/release/release_utils.sh index 50d7b5daf..d60e135d1 100644 --- a/tools/release/release_utils.sh +++ b/tools/release/release_utils.sh @@ -59,8 +59,8 @@ function publishImages { local baseTag=$2 local dockerHubUser=$3 local dockerHubPassword=$4 + local images=${@:5} docker login -u $dockerHubUser -p $dockerHubPassword - local images="$(docker images --format "{{.Repository}}" --filter=reference='goharbor/*:'$baseTag'')" for image in $images do echo "push image: $image" @@ -70,6 +70,22 @@ function publishImages { docker logout } +function publishPackages { + local curTag=$1 + local baseTag=$2 + local ghcrUser=$3 + local ghcrPassword=$4 + local images=${@:5} + docker login ghcr.io -u $ghcrUser -p $ghcrPassword + for image in $images + do + echo "push image: $image" + docker tag $image:$baseTag "ghcr.io/"$image:$curTag + retry 5 docker push "ghcr.io/"$image:$curTag + done + docker logout ghcr.io +} + function retry { local -r -i max="$1"; shift local -i n=1