Files
dexorder/bin/deploy.sh
2023-11-20 21:14:29 -04:00

44 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
if [ "$1" != "backend" ] && [ "$1" != "server" ] && [ "$1" != "web" ]; then
echo You must specify the project: backend, server, web
exit 1
else
PROJECT=$1
shift
fi
if [ "$1" == "dev" ]; then
shift
TAG="dev`date +%Y%m%d%H%M%S`"
else
DIRTY="$( cd $PROJECT && git status | grep "Changes " )"
if [ "$DIRTY" != "" ]; then
echo $PROJECT has uncommited changes.
echo
echo Use \`$0 $PROJECT dev\` to deploy a development-tagged version instead.
exit 1
fi
TAG="$( cd $PROJECT && git log --oneline | head -1 | cut -d ' ' -f 1 )"
fi
if [ $(basename "$0") == 'deploy.sh' ]; then
DEPLOY=1
else
DEPLOY=0
fi
# todo --no-cache as a script option
docker build -f deploy/docker/Dockerfile-$PROJECT -t dexorder/$PROJECT:latest . || exit 1
docker tag dexorder/$PROJECT:latest dexorder/$PROJECT:$TAG
echo $(date) built dexorder/$PROJECT:$TAG
if [ "$DEPLOY" != "0" ]; then
REMOTE=gcr.io/cointrader-211623/dexorder/$PROJECT:$TAG
echo pushing $REMOTE
docker tag dexorder/$PROJECT:$TAG $REMOTE
docker push $REMOTE
sed "s#dexorder/$PROJECT.*#$REMOTE#" deploy/k8s/$PROJECT.yaml | kubectl apply -f -
echo deployed $PROJECT.yaml $TAG
fi