go.ligato.io/vpp-agent/v3@v3.5.0/docker/dev/push_image.sh (about) 1 #!/bin/bash 2 # Usage: examples 3 # ./push_image.sh 4 # BRANCH_HEAD_TAG=`git describe` ./push_image.sh 5 # REPO_OWNER=stanislavchlebec BRANCH_HEAD_TAG=`git describe` ./push_image.sh 6 # LOCAL_IMAGE='prod_vpp_agent:latest' IMAGE_NAME='vpp-agent' ./push_image.sh 7 8 # Warning: use only IMMEDIATELY after docker/dev/build.sh to prevent INCONSISTENCIES such as 9 # a) after building image you switch to other branch which will result in mismatch of version of image and its tag 10 # b) you do not build the new image but only simply run this script which will result in mismatch version of image and its tag because the image is older than repository 11 12 set -e 13 14 # detect branch name 15 BRANCH_NAME="$(git symbolic-ref HEAD 2>/dev/null)" || BRANCH_NAME="(unnamed branch)" # detached HEAD 16 BRANCH_NAME=${BRANCH_NAME##refs/heads/} 17 BRANCH_HEAD_TAG=${BRANCH_HEAD_TAG:-"`git name-rev --name-only --tags HEAD`"} 18 VERSION=$(git describe --always --tags --dirty) 19 20 LOCAL_IMAGE=${LOCAL_IMAGE:-'dev_vpp_agent:latest'} 21 REPO_OWNER=${REPO_OWNER:-'ligato'} 22 IMAGE_NAME=${IMAGE_NAME:-'dev-vpp-agent'} 23 24 #To prepare for future fat manifest image by multi-arch manifest, 25 #now build the docker image with its arch 26 #For fat manifest, please refer 27 #https://docs.docker.com/registry/spec/manifest-v2-2/#example-manifest-list 28 29 BUILDARCH=`uname -m` 30 31 case "$BUILDARCH" in 32 "aarch64" ) 33 ARCH_SUFFIX='arm64' 34 ;; 35 36 "x86_64" ) 37 # for AMD64 platform is also used the default image (without suffix -amd64) 38 ARCH_SUFFIX='amd64' 39 ;; 40 * ) 41 echo "Architecture ${BUILDARCH} is not supported." 42 exit 1 43 ;; 44 esac 45 46 47 echo "==============================" 48 echo "Architecture: ${BUILDARCH}" 49 echo "==============================" 50 51 case "${BRANCH_NAME}" in 52 "master" ) 53 if [ ${BRANCH_HEAD_TAG} != "undefined" ] ; then 54 if [ ${BUILDARCH} = "x86_64" ] ; then 55 # for AMD64 platform is used also the default image (without suffix -amd64) 56 docker tag ${LOCAL_IMAGE} ${REPO_OWNER}/${IMAGE_NAME}:${BRANCH_HEAD_TAG} 57 docker push ${REPO_OWNER}/${IMAGE_NAME}:${BRANCH_HEAD_TAG} 58 docker tag ${LOCAL_IMAGE} ${REPO_OWNER}/${IMAGE_NAME}:latest 59 docker push ${REPO_OWNER}/${IMAGE_NAME}:latest 60 fi 61 docker tag ${LOCAL_IMAGE} ${REPO_OWNER}/${IMAGE_NAME}-${ARCH_SUFFIX}:${BRANCH_HEAD_TAG} 62 docker push ${REPO_OWNER}/${IMAGE_NAME}-${ARCH_SUFFIX}:${BRANCH_HEAD_TAG} 63 docker tag ${LOCAL_IMAGE} ${REPO_OWNER}/${IMAGE_NAME}-${ARCH_SUFFIX}:latest 64 docker push ${REPO_OWNER}/${IMAGE_NAME}-${ARCH_SUFFIX}:latest 65 else 66 echo "For branch ${BRANCH_NAME} is no setup for tagging and pushing docker images because HEAD has no tag." 67 fi 68 ;; 69 "(unnamed branch)" ) 70 docker tag ${LOCAL_IMAGE} ${REPO_OWNER}/${IMAGE_NAME}-${ARCH_SUFFIX}:${VERSION} 71 echo "Repository is in detached HEAD state - please push manually:" 72 echo docker push ${REPO_OWNER}/${IMAGE_NAME}-${ARCH_SUFFIX}:${VERSION} 73 ;; 74 * ) 75 docker tag ${LOCAL_IMAGE} ${REPO_OWNER}/${IMAGE_NAME}-${ARCH_SUFFIX}:${BRANCH_NAME} 76 docker push ${REPO_OWNER}/${IMAGE_NAME}-${ARCH_SUFFIX}:${BRANCH_NAME} 77 ;; 78 esac