47 lines
1.3 KiB
Bash
Executable File
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"
|