60 lines
1.7 KiB
Bash
Executable File
60 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
###
|
|
# FLOW
|
|
###
|
|
#
|
|
# convert deployment paths (string) into array of strings
|
|
# if path is not already set
|
|
# if number of paths > 1 print the strings with corresponding index
|
|
# get deployment path index from user
|
|
# in every case (number of paths = 1 OR index left blank from user), index is 0
|
|
# if version is not already set
|
|
# get version from user
|
|
# if version is left balnk, version is "latest"
|
|
# get deployment path from index X of deployments
|
|
# ssh into deployment host
|
|
# cd into deployment path
|
|
# git pull last changes
|
|
# set correct version in .env file
|
|
# pull latest docker image and spin up containers
|
|
#
|
|
|
|
# Convert deployment paths into array
|
|
ENVIRONMENTS=($DEPLOYMENT_PATHS)
|
|
|
|
# Check if the DEPLOYMENT_PATH is not already set
|
|
if [ -z "${DEPLOYMENT_PATH}" ]; then
|
|
# Print and ask for deployment environment (if more than one)
|
|
if [ "${#ENVIRONMENTS[@]}" -gt 1 ]; then
|
|
for i in "${!ENVIRONMENTS[@]}"; do
|
|
echo "$i: ${ENVIRONMENTS[$i]}"
|
|
done
|
|
read -p "Deployment environment: " DEPLOYMENT_ENVIRONMENT
|
|
fi
|
|
if [ -z "${DEPLOYMENT_ENVIRONMENT}" ]; then
|
|
DEPLOYMENT_ENVIRONMENT=0
|
|
fi
|
|
# Select correct path
|
|
DEPLOYMENT_PATH="${ENVIRONMENTS[$DEPLOYMENT_ENVIRONMENT]}"
|
|
fi
|
|
|
|
# Check if the DEPLOYMENT_VERSION is not already set
|
|
if [ -z "${DEPLOYMENT_VERSION}" ]; then
|
|
# Ask for deployment version
|
|
read -p "Version [latest]: " DEPLOYMENT_VERSION
|
|
if [ -z "${DEPLOYMENT_VERSION}" ]; then
|
|
DEPLOYMENT_VERSION=latest
|
|
fi
|
|
fi
|
|
|
|
echo "${DEPLOYMENT_PATH}"
|
|
echo "${DEPLOYMENT_VERSION}"
|
|
|
|
ssh $DEPLOYMENT_HOST \
|
|
"cd ${DEPLOYMENT_PATH} && \
|
|
git pull && \
|
|
sed -i "s/VERSION=.*/VERSION=${DEPLOYMENT_VERSION}/" .env && \
|
|
docker compose pull && \
|
|
docker compose up -d"
|