deployed 0.1

This commit is contained in:
2026-03-04 00:56:08 -04:00
parent bf7af2b426
commit 185fa42caa
14 changed files with 371 additions and 27 deletions

View File

@@ -1,4 +0,0 @@
#!/bin/bash
docker build -f deploy/Dockerfile -t dexorder-ai:latest .
# todo push to archive

1
bin/build Symbolic link
View File

@@ -0,0 +1 @@
deploy

111
bin/deploy Executable file
View File

@@ -0,0 +1,111 @@
#!/bin/bash
#REMOTE=northamerica-northeast2-docker.pkg.dev/dexorder-430504/dexorder
REMOTE=git.dxod.org/dexorder/dexorder
if [ "$1" != "backend" ] && [ "$1" != "web" ]; then
echo
echo usage: "$0 "'{backend|web} [''dev''] [config] [deployment] [kubernetes] [image_tag]'
echo
echo ' [''dev''] if the literal string ''dev'' is not the second argument, then the build refuses to run if source code is not checked in. Otherwise, the git revision numbers are used in the image tag.'
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 for the base image name and also to find the yaml file for deployment: deploy/k8s/{kubernetes}.yaml. Defaults to project name.'
echo
echo ' [image_tag] will be used for the container image name. The standard tag will always be generated as well.'
echo
exit 1
else
PROJECT=$1
shift
fi
if [ "$1" == "dev" ]; then
shift
DEV=1
fi
if [ "$PROJECT" == "dev" ]; then
DEV=1
# NO_CACHE=--no-cache
fi
if [ "$DEV" == "1" ]; then
TAG="dev`date +%Y%m%d%H%M%S`"
if [ "$1" != "" ]; then
CONFIG=$1
shift
else
CONFIG=dev
fi
else
if [ "$1" != "" ]; then
CONFIG=$1
shift
else
CONFIG=production
fi
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 [ "$1" != "" ]; then
DEPLOYMENT=$1
shift
else
DEPLOYMENT=$CONFIG
fi
if [ "$1" != "" ]; then
KUBERNETES=$1
shift
else
KUBERNETES=$PROJECT
fi
if [ "$1" != "" ]; then
IMG_TAG=$1
else
IMG_TAG=
fi
if [ $(basename "$0") == 'deploy' ]; then
DEPLOY=1
else
DEPLOY=0
fi
if [ "$DEPLOY" == "0" ]; then
ACTION=Building
NO_CACHE=--no-cache
else
ACTION=Making
fi
echo $ACTION $PROJECT config=$CONFIG deployment=$DEPLOYMENT '=>' $TAG
docker build $NO_CACHE -f deploy/Dockerfile-$PROJECT --build-arg="CONFIG=$CONFIG" --build-arg="DEPLOYMENT=$DEPLOYMENT" -t dexorder/ai-$PROJECT:latest . || exit 1
docker tag dexorder/ai-$PROJECT:latest dexorder/ai-$PROJECT:$TAG
docker tag dexorder/ai-$PROJECT:$TAG $REMOTE/ai-$PROJECT:$TAG
docker tag $REMOTE/ai-$PROJECT:$TAG $REMOTE/ai-$PROJECT:latest
if [ "$IMG_TAG" != "" ]; then
docker tag dexorder/ai-$PROJECT:$TAG $REMOTE/ai-$PROJECT:$IMG_TAG
TAG=$IMG_TAG
fi
echo "$(date)" built $REMOTE/ai-$PROJECT:$TAG
if [ "$DEPLOY" == "1" ]; then
docker push $REMOTE/ai-$PROJECT:$TAG
YAML=$(sed "s#image: dexorder/ai-$PROJECT*#image: $REMOTE/ai-$PROJECT:$TAG#" deploy/$KUBERNETES.yaml)
echo "$YAML" | kubectl apply -f - || echo "$YAML" "\nkubectl apply failed" && exit 1
echo deployed $KUBERNETES.yaml $REMOTE/ai-$PROJECT:$TAG
fi