|
@ -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 to current *mamweb-test* directory |
|
|
deploy: venv_check |
|
|
deploy: venv_check |
|
|
@if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi |
|
|
@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 |
|
|
# Sync test with production |
|
|
# HACK ALERT: using aggressive variant, due to the schemas being too different. |
|
|
# HACK ALERT: using aggressive variant, due to the schemas being too different. |
|
|
sync_test: sync_test_media sync_test_db_aggressive |
|
|
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' |
|
|
|
|
|