working on deployment
continuous-integration/drone/push Build is passing Details

dev
Override-6 2 years ago
parent 26a090952c
commit 45810fc368

@ -13,20 +13,19 @@ steps:
- ./mill --disable-ticker __.compile
- ./mill --disable-ticker tests.test
# - name: Deploy
# image: override6/tbasket-backend:latest
# depends_on:
# - 'Unit tests'
# environment:
# SSH_PRIVATE_KEY:
# from_secret: SSH_PRIVATE
# PASSWD:
# from_secret: PASSWD
# volumes:
# - name: build
# path: ./build
# commands:
# - ./mill Core.compile
# - chmod 777 drone/deliver.sh
# - drone/deliver.sh
- name: Deploy
image: override6/tbasket-backend:latest
depends_on:
- 'Unit tests'
environment:
SSH_PRIVATE_KEY:
from_secret: SSH_PRIVATE
volumes:
- name: build
path: ./build
commands:
- ./mill Core.jar
- ./mill JWTEmitter.jar
- chmod 777 drone/deliver.sh
- drone/deliver.sh

@ -5,5 +5,6 @@ source ./drone/prepare-deliver.sh
echo "making delivery onto '$USER@$IP:$DIR/backend'"
scp -o "StrictHostKeyChecking no" "build/libs/server-all.jar" "drone/deploy.sh" "drone/start.sh" "$USER@$IP:$DIR/backend"
mv "out/JWTEmitter/jar.dest/out.jar" "out/JWTEmitter/jar.dest/JWTEmitter.jar"
scp -o "StrictHostKeyChecking no" "out/Core/jar.dest/out.jar" "out/JWTEmitter/jar.dest/JWTEmitter.jar" "drone/deploy.sh" "drone/start.sh" "$USER@$IP:$DIR/backend"
echo "chmod 700 $DIR/backend/*; cd $DIR/backend; ./deploy.sh" | ssh -o "StrictHostKeyChecking no" "$USER@$IP"

@ -2,30 +2,35 @@
DIR=$(readlink -e "$(dirname "$0")")
PROD_SERVER_JAR_NAME="server-prod.jar"
NEW_SERVER_JAR_NAME="server-all.jar"
NEW_SERVER_JAR_NAME="out.jar"
prod_pid() {
ps -aux | tr -s " " | grep -E "\bjava -jar .*$PROD_SERVER_JAR_NAME\b" | cut -d " " -f2
PROD_EMITTER_JAR_NAME="JWTEmitter-prod.jar"
NEW_EMITTER_JAR_NAME="JWTEmitter.jar"
find_pid() {
ps -aux | tr -s " " | grep -E "\bjava -jar .*$1\b" | cut -d " " -f2
}
PROD_PID=$(prod_pid)
SERVER_PROD_PID=$(prod_pid $PROD_SERVER_JAR_NAME)
EMITTER_PROD_PID=$(prod_pid $PROD_EMITTER_JAR_NAME)
try_shutdown() {
if [ "$1" ]; then
#will cause the old server to gracefully shutdown
echo "shutting down old $2 version ..."
kill "$PROD_PID"
while [ ! "$(prod_pid $2)" ]; do sleep 1; done #sleep until process ends
echo "$2 shut down"
fi
}
#if $PROD_PID is not empty but isn't a number, something went wrong
if [ "$PROD_PID" ] && ! echo "$PROD_PID" | grep -E -q "^[0-9]+$"; then
echo "error, unable to retrieve old server pid: $PROD_PID" >&2
exit 2
fi
try_shutdown "$SERVER_PROD_PID" "$PROD_SERVER_JAR_NAME"
try_shutdown "$EMITTER_PROD_PID" "$PROD_EMITTER_JAR_NAME"
if [ "$PROD_PID" ]; then
#will cause the old server to gracefully shutdown
echo "shutting down old server version ..."
kill "$PROD_PID"
while [ ! "$(prod_pid)" ]; do sleep 1; done #sleep until process ends
echo "server shut down"
fi
rm "$DIR/$PROD_SERVER_JAR_NAME"
mv "$DIR/$NEW_SERVER_JAR_NAME" "$DIR/$PROD_SERVER_JAR_NAME" || ls
mv "$DIR/$NEW_EMITTER_JAR_NAME" "$DIR/$PROD_EMITTER_JAR_NAME" || ls
SCREEN="basket"

@ -1,3 +1,9 @@
DIR=$(readlink -e "$(dirname "$0")")
echo "starting emitter"
java -jar "$DIR/JWTEmitter-prod.jar"&
echo "starting server"
java -jar "$DIR/server-prod.jar"