made deploy.sh a softlink to build.sh

This commit is contained in:
tim
2024-02-22 16:19:28 -04:00
parent ab3d670da9
commit 23538b015e
2 changed files with 32 additions and 60 deletions

View File

@@ -1,7 +1,15 @@
#!/bin/bash
if [ "$1" != "backend" ] && [ "$1" != "server" ] && [ "$1" != "web" ]; then
echo usage: "$0" '{backend|server|web} [config] [deployment]'
echo
echo usage: "$0 "'{backend|server|web} [config] [deployment] [kubernetes]'
echo
echo ' [config] is used to find configuration files e.g. web/.env.{config} or backend/dexorder-{config}.toml. Defaults to project name.'
echo
echo ' [deployment] refers to the set of contracts bundled in the image, from contract/deployment/{deployment}. Defaults to config name.'
echo
echo ' [kubernetes] is used to find the yaml file for deployment: deploy/k8s/{kubernetes}.yaml. Defaults to project name.'
echo
exit 1
else
PROJECT=$1
@@ -21,23 +29,37 @@ if [ "$1" == "dev" ]; then
else
CONFIG=$1
shift
DIRTY="$( git status | grep "Changes " )"
DIRTY="$( cd $PROJECT && git status | grep "Changes " )"
if [ "$DIRTY" != "" ]; then
echo $PROJECT has uncommited changes.
echo $DIRTY
echo
echo Use \`$0 $PROJECT dev\` to deploy a development-tagged version instead.
exit 1
fi
TAG="$( git log --oneline $PROJECT | head -1 | cut -d ' ' -f 1 )"
DIRTY="$( cd contract && git status | grep "Changes " )"
if [ "$DIRTY" != "" ]; then
echo contract 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 )-$( cd contract && git log --oneline | head -1 | cut -d ' ' -f 1 )"
fi
if [ "$1" != "" ]; then
DEPLOYMENT=$1
shift
else
DEPLOYMENT=$CONFIG
fi
if [ "$1" != "" ]; then
KUBERNETES=$1
shift
else
KUBERNETES=$PROJECT
fi
if [ $(basename "$0") == 'deploy.sh' ]; then
DEPLOY=1
else
@@ -45,18 +67,17 @@ else
fi
REMOTE=gcr.io/cointrader-211623/dexorder/$PROJECT:$TAG
echo $REMOTE
# todo nocache as a script option
#docker build --no-cache -f deploy/Dockerfile-$PROJECT -t dexorder/$PROJECT:latest . || exit 1
echo Building $PROJECT config=$CONFIG deployment=$DEPLOYMENT '=>' $TAG
docker build -f deploy/docker/Dockerfile-$PROJECT --build-arg="CONFIG=$CONFIG" --build-arg="DEPLOYMENT=$DEPLOYMENT" -t dexorder/$PROJECT:latest . || exit 1
docker tag dexorder/$PROJECT:latest dexorder/$PROJECT:$TAG
docker tag dexorder/$PROJECT:$TAG $REMOTE
echo "$(date)" built dexorder/$PROJECT:$TAG
docker build -f deploy/docker/Dockerfile-$PROJECT --build-arg="CONFIG=$CONFIG" --build-arg="DEPLOYMENT=$DEPLOYMENT" -t dexorder/$KUBERNETES:latest . || exit 1
docker tag dexorder/$KUBERNETES:latest dexorder/$KUBERNETES:$TAG
docker tag dexorder/$KUBERNETES:$TAG $REMOTE
echo "$(date)" built $REMOTE
if [ "$DEPLOY" != "0" ]; then
docker push $REMOTE
sed "s#dexorder/$PROJECT.*#$REMOTE#" deploy/conf/$PROJECT.yaml | kubectl apply -f -
sed "s#dexorder/$PROJECT.*#$REMOTE#" deploy/conf/$KUBERNETES.yaml | kubectl apply -f -
echo deployed $PROJECT.yaml $TAG
fi

View File

@@ -1,50 +0,0 @@
#!/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
DIRTY="$( cd contract && git status | grep "Changes " )"
if [ "$DIRTY" != "" ]; then
echo contract 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 )-$( cd contract && 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

1
bin/deploy.sh Symbolic link
View File

@@ -0,0 +1 @@
build.sh