Browse Source

Deploy v novém kabátu

prosím čtěte…
pull/11/head
Pavel "LEdoian" Turinsky 2 years ago
parent
commit
a9e7cd7af2
  1. 35
      Makefile_old
  2. 22
      make/deploy
  3. 31
      make/deploy_prod
  4. 42
      make/lib.sh

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
@echo Downloading current version of flatpages from mamweb-prod.
ssh mam-web@gimli.ms.mff.cuni.cz \

22
make/deploy

@ -1,3 +1,25 @@
#!/bin/bash
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

31
make/deploy_prod

@ -1,3 +1,34 @@
#!/bin/bash
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

@ -25,3 +25,45 @@ function ensure_venv {
test -f "$VENV_PATH/bin/activate" || $VENV "$VENV_PATH"
. "$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…
Cancel
Save