diff --git a/entrypoint.sh b/entrypoint.sh index a31e861b4e25ebeaabb19a13d48cbe992865e1e0..ff260608152bfa4aacc915a3e9f8901a6a3b9ed2 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -23,16 +23,17 @@ test -z "${REGISTRY_TAG_NEW}" && REGISTRY_TAG_NEW=latest test -n "${TO_DIE}" && exit 1 ########################################################################################################################## +TEMPFILE="$(mktemp)" CONTENT_TYPE="application/vnd.docker.distribution.manifest.v2+json" -TOKEN="$(curl --user "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" "${SERVER_HOST_SCHEMA:-https}://${CI_SERVER_HOST}/jwt/auth?offline_token=true&service=container_registry&scope=repository:${CI_PROJECT_PATH}:push,pull" 2> /dev/null | jq -r .token)" -test -z "${TOKEN}" && die "Could not obtain token" +TOKEN="$(curl --user "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" "${SERVER_HOST_SCHEMA:-https}://${CI_SERVER_HOST}/jwt/auth?offline_token=true&service=container_registry&scope=repository:${CI_PROJECT_PATH}:push,pull" 2> "${TEMPFILE}" | jq -r .token)" +test -z "${TOKEN}" && cat "${TEMPFILE}" -MANIFEST="$(curl -H "${CONTENT_TYPE}" -H "Authorization: Bearer ${TOKEN}" "${REGISTRY_SCHEMA:-https}://${CI_REGISTRY}/v2/${IMAGE_PATH}/manifests/${REGISTRY_TAG_OLD}" 2> /dev/null)" -test -z "${TOKEN}" && die "Could not obtain manifest" +MANIFEST="$(curl -H "${CONTENT_TYPE}" -H "Authorization: Bearer ${TOKEN}" "${REGISTRY_SCHEMA:-https}://${CI_REGISTRY}/v2/${IMAGE_PATH}/manifests/${REGISTRY_TAG_OLD}" 2> "${TEMPFILE}")" +test -z "${MANIFEST}" && cat "${TEMPFILE}" -curl -X PUT -H "Content-Type: ${CONTENT_TYPE}" -H "Authorization: Bearer ${TOKEN}" -d "${MANIFEST}" "${REGISTRY_SCHEMA:-https}://${CI_REGISTRY}/v2/${IMAGE_PATH}/manifests/${REGISTRY_TAG_NEW}" 2> /dev/null && \ -echo "New image: ${CI_REGISTRY}/${IMAGE_PATH}:${REGISTRY_TAG_NEW}" || die "Could not set tag" +curl -X PUT -H "Content-Type: ${CONTENT_TYPE}" -H "Authorization: Bearer ${TOKEN}" -d "${MANIFEST}" "${REGISTRY_SCHEMA:-https}://${CI_REGISTRY}/v2/${IMAGE_PATH}/manifests/${REGISTRY_TAG_NEW}" 2> "${TEMPFILE}" && \ +echo "New image: ${CI_REGISTRY}/${IMAGE_PATH}:${REGISTRY_TAG_NEW}" || cat "${TEMPFILE}" ########################################################################################################################## -test -n "${TO_DIE}" && exit 1 +rm -f "${TEMPFILE}"