#!/usr/bin/env bash set -e #set -x LOCAL_IMAGE=sslproxy TAG=2.2.${BUILD_NUMBER:-dev} REMOTE_IMAGE=dkregistry.xai-corp.net:5000/${LOCAL_IMAGE}:${TAG} APP_NAME=sslproxy_app LOG=$(mktemp) #export LOCAL_IMAGE export REMOTE_IMAGE #export TAG export DOCKER_HOST=${DOCKER_HOST:-'dkhost:2376'} ### function rollback() { docker service inspect ${APP_NAME} docker service update --rollback "${APP_NAME}" docker service scale "${APP_NAME}=2" } function rollback_test() { docker ps | grep "${APP_NAME}" curl -If https://git.xai-corp.net/ } function rollback_save() { echo TODO } function trap_exit() { code=$? docker service ls | grep ${APP_NAME} if [ $code -gt 0 ]; then echo rm "$LOG" echo -e "\033[31mFailed rolling back ${APP_NAME} \033[39m" exit $code fi rm "$LOG" echo -e "\033[32mSuccess:\033[39m ${APP_NAME} successfully rolled back" } trap trap_exit EXIT print_usage() { printf "Usage: %s: [-b] [-t] [-s] \n" "$0" echo -r rollback echo -t smoke tests echo -s tag as latest echo -h help exit 0 } ###### if [ -z "$1" ]; then rollback && rollback_test && rollback_save exit fi while getopts tdhs name do case $name in d) rollback;; t) rollback_test;; s) rollback_save;; *) print_usage;; esac done