84 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| #
 | |
| # deploy.sh
 | |
| #
 | |
| # This script made to deploy dynamicweb project.
 | |
| # Please run this script as app user.
 | |
| #
 | |
| 
 | |
| APP_HOME_DIR=~/app
 | |
| 
 | |
| echo "" > $APP_HOME_DIR/deploy.log
 | |
| while true; do
 | |
|   case "$1" in
 | |
|     -h | --help ) HELP=true; shift ;;
 | |
|     -v | --verbose ) VERBOSE=true; shift ;;
 | |
|     -D | --dbmakemigrations ) DB_MAKE_MIGRATIONS=true; shift ;;
 | |
|     -d | --dbmigrate ) DB_MIGRATE=true; shift ;;
 | |
|     -n | --nogit ) NO_GIT=true; shift ;;
 | |
|     -b | --branch ) BRANCH="$2"; shift 2 ;;
 | |
|     -- ) shift; break ;;
 | |
|     * ) break ;;
 | |
|   esac
 | |
| done
 | |
| 
 | |
| if [ "$BRANCH" == "" ]; then
 | |
|     BRANCH="master"
 | |
| fi
 | |
| 
 | |
| if [ "$HELP" == "true" ]; then
 | |
|     echo "./deploy.sh <options>"
 | |
|     echo "                     "
 | |
|     echo "options are : "
 | |
|     echo "        -h, --help: Print this help message"
 | |
|     echo "        -v, --verbose: Show verbose output to stdout. Without this a deploy.log is written to ~/app folder"
 | |
|     echo "        -D, --dbmakemigrations: Do DB makemigrations"
 | |
|     echo "        -d, --dbmigrate: Do DB migrate. To do both makemigrations and migrate, supply both switches -D and -d"
 | |
|     echo "        -n, --nogit: Don't execute git commands. This is used to deploy the current code in the project repo. With this --branch has no effect."
 | |
|     echo "        -b, --branch: The branch to pull from origin repo."
 | |
|     exit
 | |
| fi
 | |
| 
 | |
| echo "BRANCH="$BRANCH
 | |
| echo "DB_MAKE_MIGRATIONS="$DB_MAKE_MIGRATIONS
 | |
| echo "DB_MIGRATE="$DB_MIGRATE
 | |
| echo "NO_GIT="$NO_GIT
 | |
| echo "VERBOSE="$VERBOSE
 | |
| 
 | |
| # The project directory exists, we pull the specified branch
 | |
| cd $APP_HOME_DIR
 | |
| if [ -z "$NO_GIT" ]; then
 | |
|     echo 'We are executing default git commands. Please add --nogit to not do this.'
 | |
|     # Save any modified changes before git pulling
 | |
|     git stash
 | |
|     # Fetch all branches/tags
 | |
|     git fetch -a
 | |
|     git checkout $BRANCH
 | |
|     git pull origin $BRANCH    
 | |
| else
 | |
|     echo 'Not using git commands.'
 | |
| fi
 | |
| 
 | |
| source ~/pyvenv/bin/activate
 | |
| pip install -r requirements.txt > deploy.log 2>&1
 | |
| echo "###" >> deploy.log
 | |
| if [ -z "$DB_MAKE_MIGRATIONS" ]; then
 | |
|     echo 'We are not doing DB makemigrations'
 | |
| else
 | |
|     echo 'Doing DB makemigrations'
 | |
|     ./manage.py makemigrations >> deploy.log 2>&1
 | |
|     echo "###" >> deploy.log
 | |
| fi
 | |
| if [ -z "$DB_MIGRATE" ]; then
 | |
|     echo 'We are not doing DB migrate'
 | |
| else
 | |
|     echo 'Doing DB migrate'
 | |
|     ./manage.py migrate >> deploy.log 2>&1
 | |
|     echo "###" >> deploy.log
 | |
| fi
 | |
| printf 'yes' | ./manage.py collectstatic >> deploy.log 2>&1
 | |
| echo "###" >> deploy.log
 | |
| django-admin compilemessages
 | |
| sudo systemctl restart celery.service
 | |
| sudo systemctl restart uwsgi
 | |
| 
 |