Merge pull request #1417 from erikwilson/tag-latest-release

Create a latest tag in docker hub for new releases
This commit is contained in:
Erik Wilson 2020-02-14 13:58:41 -07:00 committed by GitHub
commit a0c5988e62
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,10 +7,36 @@ fi
set -e -x
export REPO="rancher/k3s"
export DRONE_TAG=$(echo "${DRONE_TAG}" | sed -e 's/+/-/g')
export PLUGIN_TARGET="${REPO}:${DRONE_TAG}"
export PLUGIN_TEMPLATE="${REPO}:${DRONE_TAG}-ARCH"
REPO="rancher/k3s"
# docker can not contain '+' in the tag, so transform '+' to '-'
DOCKER_TAG=$(echo "${DRONE_TAG}" | sed -e 's/+/-/g')
# export variables for drone-manifest
export PLUGIN_TEMPLATE="${REPO}:${DOCKER_TAG}-ARCH"
export PLUGIN_PLATFORMS="linux/amd64,linux/arm64,linux/arm"
drone-manifest
# push current version manifest tag to docker hub
PLUGIN_TARGET="${REPO}:${DOCKER_TAG}" drone-manifest
# do not tag in docker as latest if the github tag contains a '-'
if echo "${DRONE_TAG}" | grep -q '-'; then
exit 0
fi
# get latest released version from github
GITHUB_URL=https://github.com/rancher/k3s/releases
VERSION_K3S=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||')
# function for comparing versions
version_ge() {
[ "$1" = "$2" ] || [ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]
}
# do not tag in docker as latest if we are not greater than or equal to the latest github tag
if ! version_ge "${DRONE_TAG}" "${VERSION_K3S}"; then
exit 0
fi
# push latest manifest tag to docker hub
PLUGIN_TARGET="${REPO}:latest" drone-manifest