44 lines
1.2 KiB
Bash
Executable File
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
|