|
|
@ -7,10 +7,36 @@ fi |
|
|
|
|
|
|
|
|
|
|
|
set -e -x |
|
|
|
set -e -x |
|
|
|
|
|
|
|
|
|
|
|
export REPO="rancher/k3s" |
|
|
|
REPO="rancher/k3s" |
|
|
|
export DRONE_TAG=$(echo "${DRONE_TAG}" | sed -e 's/+/-/g') |
|
|
|
|
|
|
|
export PLUGIN_TARGET="${REPO}:${DRONE_TAG}" |
|
|
|
# docker can not contain '+' in the tag, so transform '+' to '-' |
|
|
|
export PLUGIN_TEMPLATE="${REPO}:${DRONE_TAG}-ARCH" |
|
|
|
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" |
|
|
|
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 |
|
|
|