From a07543fd68de5be3eb6ad5d955256f11565beeb3 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 10 Jan 2022 10:01:25 +0100 Subject: [PATCH] update start script - first try to make it runnable --- deployment/bare_metal/install.sh | 8 +-- deployment/bare_metal/start.sh | 94 +++++++++++++++++++++++--------- 2 files changed, 71 insertions(+), 31 deletions(-) diff --git a/deployment/bare_metal/install.sh b/deployment/bare_metal/install.sh index 8ba2c518a..4257b0917 100755 --- a/deployment/bare_metal/install.sh +++ b/deployment/bare_metal/install.sh @@ -68,11 +68,9 @@ cp .env.dist .env # Install nginx sudo apt-get install -y nginx -cd /etc/nginx/sites-enabled # TODO change directory again -sudo rm default -sudo ln -s /home/gradido/gradido/deployment/bare_metal/nginx/sites-available/gradido.conf gradido.conf -cd /etc/nginx/sites-available -sudo ln -s /home/gradido/gradido/deployment/bare_metal/nginx/sites-available/gradido.conf gradido.conf +sudo rm /etc/nginx/sites-enabled/default +sudo ln -s /home/gradido/gradido/deployment/bare_metal/nginx/sites-available/gradido.conf /etc/nginx/sites-available +sudo ln -s /etc/nginx/sites-available/gradido.conf /etc/nginx/sites-enabled cd /etc/nginx sudo ln -s /home/gradido/gradido/deployment/bare_metal/nginx/common common diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 14b2c5c6b..22c31f0c7 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -1,52 +1,94 @@ #!/bin/bash -# TODO Load .env +# Find current directory & configure paths +SCRIPT_PATH=$(realpath $0) +SCRIPT_DIR=$(dirname $SCRIPT_PATH) +LOCK_FILE=$SCRIPT_PATH/update.lock +UPDATE_HTML=$SCRIPT_PATH/update-page/updating.html +PROJECT_ROOT=$SCRIPT_DIR/../../ -# TODO update git branch +# Load .env or .env.dist if not present +set -o allexport +if [ -f "$SCRIPT_DIR.env"]; then + source $SCRIPT_DIR.env +else + source $SCRIPT_DIR.env.dist +fi +set +o allexport + +# lock start +if [ -f $LOCK_FILE ] ; then + retVal="Already building!" + return "${retVal}" 2>/dev/null || exit "${retVal}" +fi +touch $LOCK_FILE + +UPDATE_SITE_CONFIG=stage1_updating + +# Create a new updating.html from the template +\cp $SCRIPT_PATH/update-page/updating.html.template $UPDATE_HTML + +# configure nginx for the update-page +echo 'Configuring nginx to serve the update-page
' >> $UPDATE_HTML +rm /etc/nginx/sites-enabled/gradido.conf +ln -s /etc/nginx/sites-available/update-page.conf /etc/nginx/sites-enabled/ +sudo /etc/init.d/nginx restart + + +# stop all services +echo 'Stopping all Gradido services
' >> $UPDATE_HTML +pm2 stop all + +# git +BRANCH=${1:-master} +echo "Starting with git pull - branch:$BRANCH
" >> $UPDATE_HTML +cd $PROJECT_ROOT +git fetch origin/$BRANCH $BRANCH +git checkout $BRANCH +export BUILD_COMMIT="$(git rev-parse HEAD)" # Install & build database -# TODO change directory correcty +echo 'Updating database
' >> $UPDATE_HTML +cd $PROJECT_ROOT/database yarn install yarn build yarn up # TODO only in staging! +yarn dev_reset yarn seed # Install & build backend -# TODO change directory correcty +echo 'Updating backend
' >> $UPDATE_HTML +cd $PROJECT_ROOT/backend yarn install yarn build - -# Install & build frontend -# TODO change directory correcty -yarn install -yarn build - -# Install & build admin -# TODO change directory correcty -yarn install -yarn build - -# start backend -# TODO pm2 stop gradido-backend pm2 delete gradido-backend -# TODO working directory pm2 start --name gradido-backend "yarn start" pm2 save -# start frontend -# TODO pm2 stop gradido-frontend +# Install & build frontend +echo 'Updating frontend
' >> $UPDATE_HTML +cd $PROJECT_ROOT/frontend +yarn install +yarn build pm2 delete gradido-frontend -# TODO working directory pm2 start --name gradido-frontend "yarn start" pm2 save -# start admin -# TODO pm2 stop gradido-admin +# Install & build admin +echo 'Updating admin
' >> $UPDATE_HTML +cd $PROJECT_ROOT/admin +yarn install +yarn build pm2 delete gradido-admin -# TODO working directory pm2 start --name gradido-admin "yarn start" pm2 save -# restart nginx -sudo /etc/init.d/nginx restart \ No newline at end of file +# let nginx showing gradido +echo 'Configuring nginx to serve gradido again
' >> $UPDATE_HTML +ln -s /etc/nginx/sites-available/gradido.conf /etc/nginx/sites-enabled/ +rm /etc/nginx/sites-enabled/update-page.conf +sudo /etc/init.d/nginx restart + +#release lock +rm $LOCK_FILE \ No newline at end of file