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"