Deploy v novém kabátu
prosím čtěte…
This commit is contained in:
		
							parent
							
								
									4f7c4057ea
								
							
						
					
					
						commit
						a9e7cd7af2
					
				
					 4 changed files with 95 additions and 35 deletions
				
			
		
							
								
								
									
										35
									
								
								Makefile_old
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								Makefile_old
									
									
									
									
									
								
							|  | @ -1,38 +1,3 @@ | ||||||
| # Deploy to current *mamweb-test* directory |  | ||||||
| deploy: venv_check |  | ||||||
| 	@if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi |  | ||||||
| 	@if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in directory mamweb-test"; exit 1; fi |  | ||||||
| 	@echo "Installing version from origin/${BRANCH} ..." |  | ||||||
| 	git pull origin ${BRANCH} |  | ||||||
| 	git clean -f |  | ||||||
| 	make install |  | ||||||
| 	./manage.py migrate  |  | ||||||
| 	./manage.py collectstatic --noinput |  | ||||||
| 	(chown -R :mam . || true ) |  | ||||||
| 	(chmod -R g+rX,go-w . || true ) |  | ||||||
| 	@echo Restarting systemd unit |  | ||||||
| 	systemctl --user restart mamweb-test.service |  | ||||||
| 	@echo Done. |  | ||||||
| 
 |  | ||||||
| # Deploy to current *mamweb-prod* directory |  | ||||||
| deploy_prod: venv_check |  | ||||||
| 	@if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi |  | ||||||
| 	@if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-prod" ]; then echo "Only possible in directory mamweb-prod"; exit 1; fi |  | ||||||
| 	@echo "Backing up production DB ..." |  | ||||||
| 	( cd -P .. && ./backup_prod_db.sh ) |  | ||||||
| 	@echo "Installing version from origin/master ..." |  | ||||||
| 	git pull origin master |  | ||||||
| 	git clean -f |  | ||||||
| 	make install |  | ||||||
| 	./manage.py migrate  |  | ||||||
| 	./manage.py collectstatic --noinput |  | ||||||
| 	(chown -R :mam . || true ) |  | ||||||
| 	(chmod -R g+rX,go-w . || true ) |  | ||||||
| 	@echo Restarting systemd user unit for MaM web |  | ||||||
| 	systemctl --user restart mamweb-prod.service |  | ||||||
| 	@echo Done. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| sync_prod_flatpages: venv_check  | sync_prod_flatpages: venv_check  | ||||||
| 	@echo Downloading current version of flatpages from mamweb-prod. | 	@echo Downloading current version of flatpages from mamweb-prod. | ||||||
| 	ssh mam-web@gimli.ms.mff.cuni.cz \ | 	ssh mam-web@gimli.ms.mff.cuni.cz \ | ||||||
|  |  | ||||||
							
								
								
									
										22
									
								
								make/deploy
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								make/deploy
									
									
									
									
									
								
							|  | @ -1,3 +1,25 @@ | ||||||
| #!/bin/bash | #!/bin/bash | ||||||
| 
 | 
 | ||||||
| set -exuo pipefail | set -exuo pipefail | ||||||
|  | . make/lib.sh | ||||||
|  | 
 | ||||||
|  | if test "$USER" != "mam-web"; | ||||||
|  | then | ||||||
|  | 	echo >&2 "Nasadit web smí jen uživatel mam-web" | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | if test "$(readlink -f .)" != "$TESTWEB"; | ||||||
|  | then | ||||||
|  | 	echo >&2 "Nasadit testweb lze jen v jeho složce" | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | CURRENT_BRANCH="$(git branch --show-current)" | ||||||
|  | BRANCH="${1:-$CURRENT_BRANCH}" | ||||||
|  | 
 | ||||||
|  | safe_checkout_branch "$BRANCH" "$0" | ||||||
|  | 
 | ||||||
|  | # Teď máme správnou větev, jdeme vše nainstalovat | ||||||
|  | install_everything | ||||||
|  | systemctl --user restart mamweb-test.service | ||||||
|  |  | ||||||
|  | @ -1,3 +1,34 @@ | ||||||
| #!/bin/bash | #!/bin/bash | ||||||
| 
 | 
 | ||||||
| set -exuo pipefail | set -exuo pipefail | ||||||
|  | . make/lib.sh | ||||||
|  | 
 | ||||||
|  | if test "$USER" != "mam-web" | ||||||
|  | then | ||||||
|  | 	echo >&2 "Nasadit web smí jen uživatel mam-web" | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | if test "$(readlink -f .)" != "$PRODWEB" | ||||||
|  | then | ||||||
|  | 	echo >&2 "Nasadit testweb lze jen v jeho složce" | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | CURRENT_BRANCH="$(git branch --show-current)" | ||||||
|  | BRANCH="${1:-$CURRENT_BRANCH}" | ||||||
|  | 
 | ||||||
|  | if test "$BRANCH" != master | ||||||
|  | then | ||||||
|  | 	echo "Pozor, nasazuješ na produkci větev, která není master ($BRANCH), chceš pokračovat? Pokud ne, sestřel tento skript." | ||||||
|  | 	read | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Záloha DB | ||||||
|  | ( cd -P .. && ./backup_prod_db.sh ) | ||||||
|  | 
 | ||||||
|  | safe_checkout_branch "$BRANCH" "$0" | ||||||
|  | 
 | ||||||
|  | # Teď máme správnou větev, jdeme vše nainstalovat | ||||||
|  | install_everything | ||||||
|  | systemctl --user restart mamweb-prod.service | ||||||
|  |  | ||||||
							
								
								
									
										42
									
								
								make/lib.sh
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								make/lib.sh
									
									
									
									
									
								
							|  | @ -25,3 +25,45 @@ function ensure_venv { | ||||||
| 	test -f "$VENV_PATH/bin/activate" || $VENV "$VENV_PATH" | 	test -f "$VENV_PATH/bin/activate" || $VENV "$VENV_PATH" | ||||||
| 	. "$VENV_PATH/bin/activate" | 	. "$VENV_PATH/bin/activate" | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | function safe_checkout_branch { | ||||||
|  | 	if "$#" -ne 2; | ||||||
|  | 	then | ||||||
|  | 		echo >&2 "Použití: $0 <branch> <current-script>" | ||||||
|  | 		return 1 | ||||||
|  | 	fi | ||||||
|  | 
 | ||||||
|  | 	BRANCH="$1" | ||||||
|  | 	SCRIPT="$2" | ||||||
|  | 
 | ||||||
|  | 	echo "Debug: I am $0, $SCRIPT as param" | ||||||
|  | 
 | ||||||
|  | 	git fetch --all | ||||||
|  | 	# Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží. | ||||||
|  | 	# Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. | ||||||
|  | 	if test $(git rev-parse @:make/lib.sh) != $(git rev-parse "$BRANCH":make/lib.sh) | ||||||
|  | 	then | ||||||
|  | 		echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" | ||||||
|  | 		exit 1 | ||||||
|  | 	fi | ||||||
|  | 	if test $(git rev-parse @:"$SCRIPT") != $(git rev-parse "$BRANCH":"$SCRIPT") | ||||||
|  | 	then | ||||||
|  | 		echo >&2 "Změna v $SCRIPT, prosím pullni manuálně" | ||||||
|  | 		exit 1 | ||||||
|  | 	fi | ||||||
|  | 	git checkout "$BRANCH" | ||||||
|  | 	git pull | ||||||
|  | 	git clean -f | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function install_everything { | ||||||
|  | 	# Skoro celé nasazení webu je stejné pro testweb i pro produkci, tak je to tady dohromady | ||||||
|  | 	ensure_venv | ||||||
|  | 	make/install | ||||||
|  | 	./manage.py migrate | ||||||
|  | 	./manage.py collectstatic --noinput | ||||||
|  | 	chown -R :mam . || true | ||||||
|  | 	chmod -R g+rX,go-w . || true | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Pavel "LEdoian" Turinsky
						Pavel "LEdoian" Turinsky