diff --git a/tools/releases/docker.sh b/tools/releases/docker.sh new file mode 100755 index 000000000000..bfb4626ab8b4 --- /dev/null +++ b/tools/releases/docker.sh @@ -0,0 +1,122 @@ +#!/usr/bin/env bash + +set -e + +KUMA_DOCKER_REPO="kong-docker-kuma-docker.bintray.io" +KUMA_COMPONENTS=("kuma-cp" "kuma-dp" "kuma-injector" "kuma-tcp-echo") + +function msg_green { + builtin echo -en "\033[1;32m" + echo "$@" + builtin echo -en "\033[0m" +} + + +function msg_red() { + builtin echo -en "\033[1;31m" >&2 + echo "$@" >&2 + builtin echo -en "\033[0m" >&2 +} + + +function msg_yellow() { + builtin echo -en "\033[1;33m" + echo "$@" + builtin echo -en "\033[0m" +} + + +function msg() { + builtin echo -en "\033[1m" + echo "$@" + builtin echo -en "\033[0m" +} + + +function msg_err() { + msg_red $@ + exit 1 +} + + +function build { + for component in "${KUMA_COMPONENTS[@]}"; do + msg "Building $component..." + docker build --build-arg KUMA_ROOT=$(pwd) -t $KUMA_DOCKER_REPO/$component:$KUMA_VERSION \ + -f tools/releases/dockerfiles/Dockerfile.$component . + docker tag $KUMA_DOCKER_REPO/$component:$KUMA_VERSION $KUMA_DOCKER_REPO/$component:latest + msg_green "... done!" + done +} + + +function docker_login { + docker login -u "$BINTRAY_USERNAME" -p "$BINTRAY_API_KEY" $KUMA_DOCKER_REPO +} + + +function docker_logout { + docker logout $KUMA_DOCKER_REPO +} + + +function push { + docker_login + + for component in "${KUMA_COMPONENTS[@]}"; do + msg "Pushing kuma-cp..." + docker push $KUMA_DOCKER_REPO/$component:$KUMA_VERSION + docker push $KUMA_DOCKER_REPO/$component:latest + msg_green "... done!" + done + + docker_logout +} + + +function usage { + echo "Usage: $0 [--build | --push ] --version " + exit 0 +} + +function main { + while [[ $# -gt 0 ]]; do + flag=$1 + case $flag in + --help) + usage + ;; + --build) + op="build" + ;; + --push) + op="push" + ;; + --version) + KUMA_VERSION=$2 + shift + ;; + *) + usage + break + ;; + esac + shift + done + + [ -z "$BINTRAY_USERNAME" ] && msg_err "BINTRAY_USERNAME required" + [ -z "$BINTRAY_API_KEY" ] && msg_err "BINTRAY_API_KEY required" + [ -z "$KUMA_VERSION" ] && msg_err "Error: --version required" + + case $op in + build) + build + ;; + push) + push + ;; + esac +} + + +main $@