sangue/docker/deployment/master2staging.sh

47 lines
1.3 KiB
Bash
Executable File

#! /bin/bash --
set -e
set -o pipefail
cd "$(dirname "$0")" || exit 1
CD_TO="./staging/"
PROJ="sangue"
cd-docker-compose() {
(cd "$1" && docker-compose "${@:2}")
}
log_images() {
if cd-docker-compose "$CD_TO" exec "$PROJ" bash -c 'exit 0'; then
{
date | tr -d '\n';
echo -ne "\t";
cd-docker-compose "$CD_TO" exec "$PROJ" bash -c 'cat /git_info' | jq -r '.lhash' | tr -d '\n';
echo -ne '\t';
cd-docker-compose "$CD_TO" images -q "$PROJ" | tr -d '\n';
echo -e "\t$1";
} >> "$2"
else
{
date | tr -d '\n';
echo -ne "\timpossibile leggere il tag git\t";
{ cd-docker-compose "$CD_TO" images -q "$PROJ" || echo "N/A"; } | tr -d '\n';
echo -e "\t$1";
} >> "$2"
fi
}
log_images "prima" "log_deployment_staging.txt"
cd-docker-compose "$CD_TO" pull
PULL_OK=$?
if [[ $PULL_OK -eq 0 && "$1" == "-d" ]]; then
echo "Copia del database da produzione a staging..."
if ./copydb.sh --from production --to staging; #l'utente può dire no
then
echo "Copia completata"
else
echo "Copia annullata"
fi
fi
[[ $PULL_OK -eq 0 ]] && cd-docker-compose "$CD_TO" up -d
echo "Master caricato su ambiente di TEST (Staging)"
log_images "dopo" "log_deployment_staging.txt"