Personal_Website/build/build.sh

46 lines
1.1 KiB
Bash
Executable File

set -e
run_command() {
echo "Running: $*" >&2
$*
}
REGISTRY_URL="registry.chaoticlogic.us"
IMAGE_NAME="daniel-website"
IMAGE_TAG="latest"
KUBE_NAMESPACE="portfolio"
KUBE_POD_LABELS="app=portfolio,tier=website"
STARTING_PWD=$(pwd)
PROJECT_PATH=$(realpath "$(dirname "$0")/..")
run_command cd "$PROJECT_PATH/build"
REQUIRED_IGNORED_FILES=(".env.production" "mysql-secret.env" ".dockerconfigjson")
run_command docker build -t "$REGISTRY_URL/$IMAGE_NAME:$IMAGE_TAG" "$PROJECT_PATH"
run_command docker push "$REGISTRY_URL/$IMAGE_NAME:$IMAGE_TAG"
for i in "${!REQUIRED_IGNORED_FILES[@]}"
do
FILE=${REQUIRED_IGNORED_FILES[$i]}
if [ ! -e "$FILE" ]
then
echo "Missing file $PROJECT_PATH/$FILE required to deploy. Skipping deploy"
exit 0
fi
done
run_command kubectl apply -k "$PROJECT_PATH/build/"
echo "Waiting for deployment"
run_command sleep 30
WEBSITE_POD=$(run_command kubectl get pod -l "$KUBE_POD_LABELS" -n "$KUBE_NAMESPACE" -o jsonpath="{.items[0].metadata.name}")
run_command kubectl delete -n "$KUBE_NAMESPACE" pod "$WEBSITE_POD"
run_command cd "$STARTING_PWD"