46 lines
1.1 KiB
Bash
Executable File
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"
|