Merge 'publish-rolling-image' and 'remove-tag' into single sequence 'promote-image'
Signed-off-by: James Ketrenos <james.p.ketrenos@intel.com>
This commit is contained in:
parent
0b55f53410
commit
f57b15c555
@ -40,8 +40,7 @@ test_image:
|
|||||||
publish_image:
|
publish_image:
|
||||||
stage: "publish"
|
stage: "publish"
|
||||||
script:
|
script:
|
||||||
- ./scripts/push-rolling-image.sh
|
- ./scripts/promote-image.sh
|
||||||
- ./scripts/remove-tag.sh
|
|
||||||
tags:
|
tags:
|
||||||
- builder
|
- builder
|
||||||
- ubuntu
|
- ubuntu
|
||||||
|
@ -30,14 +30,14 @@ function fail {
|
|||||||
|
|
||||||
cat << EOF
|
cat << EOF
|
||||||
|
|
||||||
The following will done to publish latest rolling image:
|
The following will publish latest rolling image:
|
||||||
|
|
||||||
1. Pull ${CONTAINER}:${TAG}
|
1. Pull ${CONTAINER}:${TAG}
|
||||||
2. Tag #1 as ${CONTAINER}:${TARGET_TAG}
|
2. Tag #1 as ${CONTAINER}:${TARGET_TAG}
|
||||||
3. Tag #1 as ${CONTAINER}:latest-${TARGET_TAG}
|
3. Tag #1 as ${CONTAINER}:latest-${TARGET_TAG}
|
||||||
4. Push #2
|
4. Delete ${CONTAINER}:${TAG}
|
||||||
5. Push #3
|
5. Push #2
|
||||||
6. Delete ${CONTAINER}:${TAG}
|
6. Push #3
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
@ -52,6 +52,28 @@ docker tag ${REGISTRY_URL}/${CONTAINER}:${TAG} \
|
|||||||
${REGISTRY_URL}/${CONTAINER}:latest-${TARGET_TAG} ||
|
${REGISTRY_URL}/${CONTAINER}:latest-${TARGET_TAG} ||
|
||||||
fail "Unable to tag image (2/2)"
|
fail "Unable to tag image (2/2)"
|
||||||
|
|
||||||
|
# Parse out the FQDN from the REGISTRY_URL and escape
|
||||||
|
# the group/project/path
|
||||||
|
FQDN=${REGISTRY_URL%%/*}
|
||||||
|
PROJECT=$(echo ${REGISTRY_URL#*/}/${CONTAINER} | sed s,/,%2F,g)
|
||||||
|
|
||||||
|
echo -e "Deleting tag:\n ${CONTAINER}:${TAG}\nFrom:\n ${PROJECT}"
|
||||||
|
|
||||||
|
RESULTS=$(curl --noproxy '*' -s -k \
|
||||||
|
-u ${HARBOR_USER}:${HARBOR_PASSWD} \
|
||||||
|
-i \
|
||||||
|
-X DELETE \
|
||||||
|
-H "accept: application/json" \
|
||||||
|
"https://${FQDN}/api/repositories/${PROJECT}/tags/${TAG}")
|
||||||
|
|
||||||
|
echo ${RESULTS} | grep -q "HTTP.*200" && {
|
||||||
|
echo "Tag deleted successfully."
|
||||||
|
} || {
|
||||||
|
>&2 echo "Error deleting tag:"
|
||||||
|
>&2 echo "${RESULTS}"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
docker push ${REGISTRY_URL}/${CONTAINER}:${TARGET_TAG} ||
|
docker push ${REGISTRY_URL}/${CONTAINER}:${TARGET_TAG} ||
|
||||||
fail "Unable to push ${CONTAINER}:${TARGET_TAG}"
|
fail "Unable to push ${CONTAINER}:${TARGET_TAG}"
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Bring in the variables from SOLUTION file, supporting
|
|
||||||
# nested substitution
|
|
||||||
. SOLUTION
|
|
||||||
. MANIFEST
|
|
||||||
|
|
||||||
VARS=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" SOLUTION))
|
|
||||||
VARS+=($(sed -nE "s,(^[^#][^=]*).*$,\1,pg" MANIFEST))
|
|
||||||
for var in ${VARS[@]}; do
|
|
||||||
export ${var}
|
|
||||||
done
|
|
||||||
|
|
||||||
RELEASE_INFO=${RELEASE_INFO:-N/A}
|
|
||||||
[[ "${RELEASE_INFO}" == "N/A" ]] && {
|
|
||||||
TAG=${TAG:-test-build-${OS_DISTRO}-${PACKAGE_STREAM}-$(date +%Y%m%d)}
|
|
||||||
} || {
|
|
||||||
TAG=${TAG:-test-${OS_DISTRO}-${PACKAGE_STREAM}-${RELEASE_INFO}}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Parse out the FQDN from the REGISTRY_URL and escape
|
|
||||||
# the group/project/path
|
|
||||||
FQDN=${REGISTRY_URL%%/*}
|
|
||||||
PROJECT=$(echo ${REGISTRY_URL#*/}/${CONTAINER} | sed s,/,%2F,g)
|
|
||||||
|
|
||||||
echo -e "Deleting tag:\n ${CONTAINER}:${TAG}\nFrom:\n ${PROJECT}"
|
|
||||||
|
|
||||||
RESULTS=$(curl --noproxy '*' -s -k \
|
|
||||||
-u ${HARBOR_USER}:${HARBOR_PASSWD} \
|
|
||||||
-i \
|
|
||||||
-X DELETE \
|
|
||||||
-H "accept: application/json" \
|
|
||||||
"https://${FQDN}/api/repositories/${PROJECT}/tags/${TAG}")
|
|
||||||
|
|
||||||
echo ${RESULTS} | grep -q "HTTP.*200" && {
|
|
||||||
echo "Tag deleted successfully."
|
|
||||||
} || {
|
|
||||||
>&2 echo "Error deleting tag:"
|
|
||||||
>&2 echo "${RESULTS}"
|
|
||||||
exit 1
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user