Makefile reforma vol.2 [WIP]
Už máme ty jednoduché targety (nebo byly smazány), zbývá dořešit několik složitých.
This commit is contained in:
parent
9f78963e7f
commit
8b36e79f04
13 changed files with 39 additions and 78 deletions
63
Makefile_old
63
Makefile_old
|
@ -1,44 +1,3 @@
|
|||
.PHONY: all venv_check clean install install_web install_venv clean_venv clean_schema run test deploy_test deploy_prod sync_test_media sync_test_db sync_test sync_local_media sync_local_db sync_local
|
||||
|
||||
install: install_web
|
||||
|
||||
install_web: venv_check
|
||||
@# venv může být příšerně starý, takže nejdříve upgradujeme venvové věci
|
||||
pip install --upgrade pip
|
||||
pip install --upgrade setuptools
|
||||
# Instalace závislostí webu
|
||||
pip install -r requirements.txt --upgrade
|
||||
# Pro vygenerování tesdat spusť ./manage.py testdata
|
||||
# Po vygenerování testdat spusť ./manage.py loaddata data/*, ať máš menu a další modely
|
||||
# Pro synchronizaci flatpages spusť make sync_prod_flatpages
|
||||
|
||||
install_venv:
|
||||
${VENV} ${VENV_PATH}
|
||||
|
||||
clean_venv:
|
||||
# Možná není 100% foolproof...
|
||||
@test ! ${VENV_PATH} = . || ! echo "Smaž si prosím venv sám, nebudu mazat celý web"
|
||||
rm -rfv ${VENV_PATH}
|
||||
rm -f pip-selfcheck.json
|
||||
clean_schema:
|
||||
rm -f schema_seminar.pdf schema_all.pdf
|
||||
|
||||
run: venv_check
|
||||
./manage.py runserver
|
||||
|
||||
test: venv_check
|
||||
./manage.py test -v2 seminar mamweb
|
||||
|
||||
# DB schemata
|
||||
|
||||
schema: schema_seminar.pdf schema_all.pdf
|
||||
|
||||
schema_seminar.pdf: venv_check
|
||||
./manage.py graph_models seminar | dot -Tpdf > schema_seminar.pdf
|
||||
|
||||
schema_all.pdf: venv_check
|
||||
./manage.py graph_models -a -g | dot -Tpdf > schema_all.pdf
|
||||
|
||||
# Deploy to current *mamweb-test* directory
|
||||
deploy: venv_check
|
||||
@if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi
|
||||
|
@ -104,25 +63,3 @@ sync_test_db_aggressive:
|
|||
# Sync test with production
|
||||
# HACK ALERT: using aggressive variant, due to the schemas being too different.
|
||||
sync_test: sync_test_media sync_test_db_aggressive
|
||||
|
||||
|
||||
# Sync media directory with atrey. Useful for local development with production database
|
||||
# Does not sync Galerie and CACHE (too huge).
|
||||
sync_local_media:
|
||||
rsync -ave ssh --exclude Galerie --exclude CACHE\
|
||||
mam-web@gimli.ms.mff.cuni.cz:/akce/mam/www/mamweb-prod/media/ ./media/
|
||||
# Downloads and restores production database to local database. PostgreSQL only.
|
||||
sync_local_db:
|
||||
scp mam-web@gimli.ms.mff.cuni.cz:`ssh mam-web@gimli.ms.mff.cuni.cz 'ls -v /akce/mam/www/backups/mam_prod-*\.pgdump.xz | tail -n 1'` \
|
||||
./last.pgdump.xz
|
||||
xz -fd last.pgdump.xz
|
||||
pg_restore -c -d mam-prod last.pgdump
|
||||
|
||||
# Sync database and media. See above lines
|
||||
sync_local: sync_local_media sync_local_db
|
||||
|
||||
# Push local compiled Vue to gimli test site
|
||||
push_compiled_vue_to_test:
|
||||
scp vue_frontend/webpack-stats.json mam-web@gimli:/akce/mam/www/mamweb-test/vue_frontend/
|
||||
rsync -ave ssh seminar/static/seminar/vue mam-web@gimli:/akce/mam/www/mamweb-test/seminar/static/seminar/
|
||||
ssh mam-web@gimli.ms.mff.cuni.cz 'cd /akce/mam/www/mamweb-test/ && . env/bin/activate && ./manage.py collectstatic --noinput'
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
||||
. make/lib.sh
|
||||
|
||||
${VENV} ${VENV_PATH}
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
||||
. make/lib.sh
|
||||
|
||||
ensure_venv
|
||||
|
||||
# Aktualizace toolchainu
|
||||
pip install --upgrade pip setuptools
|
||||
# Instalace závislostí webu
|
||||
pip install -r requirements.txt --upgrade
|
||||
|
||||
# XXX: Připomínka z původního Makefile:
|
||||
echo 'Pro vygenerování tesdat spusť ./manage.py testdata
|
||||
Po vygenerování testdat spusť ./manage.py loaddata data/*, ať máš menu a další modely
|
||||
Pro synchronizaci flatpages spusť make/sync_prod_flatpages'
|
||||
|
|
|
@ -18,6 +18,7 @@ function die {
|
|||
}
|
||||
|
||||
# Vždycky chceme zajistit, že běžíme z rootu repozitáře
|
||||
# TODO: chceme? Nechceme naopak umět to spouštět odkudkoliv, aspoň u většiny targetů?
|
||||
test -d '.git' || die "Make skript spuštěn ve špatné složce, spusť ho z kořenového adresáře repozitáře."
|
||||
|
||||
function ensure_venv {
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
||||
. make/lib.sh
|
||||
|
||||
scp vue_frontend/webpack-stats.json "$GIMLI_LOGIN:$TESTWEB/vue_frontend/"
|
||||
rsync -ave ssh seminar/static/seminar/vue "$GIMLI_LOGIN:$TESTWEB/seminar/static/seminar/"
|
||||
# TODO: Je OK tady zapínat venv přímo takhle, nebo by to taky mělo být enkapsulováno do nějakého skriptu (e.g. make/deploy/collect_static)?
|
||||
ssh "$GIMLI_LOGIN" "cd $TESTWEB && . env/bin/activate && ./manage.py collectstatic --noinput'
|
||||
|
|
5
make/run
5
make/run
|
@ -1,3 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
||||
. make/lib.sh
|
||||
|
||||
ensure_venv
|
||||
|
||||
./manage.py runserver
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
||||
. make/lib.sh
|
||||
|
||||
ensure_venv
|
||||
|
||||
./manage.py graph_models seminar | dot -Tpdf > schema_seminar.pdf
|
||||
./manage.py graph_models -a -g | dot -Tpdf > schema_all.pdf
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
|
@ -1,3 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -exuo pipefail
|
||||
. make/lib.sh
|
||||
|
||||
ensure_venv
|
||||
|
||||
./manage.py test -v2
|
||||
|
|
Loading…
Reference in a new issue