35 lines
984 B
Bash
Executable File
35 lines
984 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
require_var() {
|
|
local name="$1"
|
|
if [ -z "${!name:-}" ]; then
|
|
printf 'Required environment variable %s is missing\n' "$name" >&2
|
|
exit 2
|
|
fi
|
|
}
|
|
|
|
quote() {
|
|
printf '%q' "$1"
|
|
}
|
|
|
|
require_var SWARM_MANAGER_HOST
|
|
require_var SWARM_SSH_USER
|
|
require_var ENVIRONMENT
|
|
require_var STACK_NAME
|
|
|
|
SSH_PORT="${SWARM_SSH_PORT:-22}"
|
|
SSH_TARGET="${SWARM_SSH_USER}@${SWARM_MANAGER_HOST}"
|
|
REMOTE_DEPLOY_DIR="${REMOTE_DEPLOY_DIR:-/tmp/videoreg-deploy}"
|
|
|
|
ssh -p "$SSH_PORT" "$SSH_TARGET" "mkdir -p $(quote "$REMOTE_DEPLOY_DIR")"
|
|
scp -P "$SSH_PORT" deploy/remote/rollback-stack.sh "$SSH_TARGET:$REMOTE_DEPLOY_DIR/rollback-stack.sh"
|
|
|
|
remote_command="ENVIRONMENT=$(quote "$ENVIRONMENT") STACK_NAME=$(quote "$STACK_NAME") "
|
|
if [ -n "${RELEASE_LOCK_FILE:-}" ]; then
|
|
remote_command+="RELEASE_LOCK_FILE=$(quote "$RELEASE_LOCK_FILE") "
|
|
fi
|
|
remote_command+="bash $(quote "$REMOTE_DEPLOY_DIR/rollback-stack.sh")"
|
|
|
|
ssh -p "$SSH_PORT" "$SSH_TARGET" "$remote_command"
|