From 25fcddfba8e0296d7eb43cf7d8b722841c0d0709 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 20:18:22 +0100 Subject: [PATCH 01/17] =?UTF-8?q?P=C5=99i=20deployi=20vyrob=20dokumentaci?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/deploy | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/make/deploy b/make/deploy index 24ade165..635364b6 100755 --- a/make/deploy +++ b/make/deploy @@ -14,3 +14,10 @@ safe_checkout_branch "$BRANCH" # Teď máme správnou větev, jdeme vše nainstalovat install_everything systemctl --user restart mamweb-test.service + +# Build dokumentace +ensure_venv +( + cd docs + make html +) From e612899dc2bfa9f7484a69b63797c55f4cb46740 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Mon, 21 Nov 2022 20:05:06 +0100 Subject: [PATCH 02/17] Requirements: myst_parser pro dokumentaci --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 9ad24a7f..d4713d76 100644 --- a/requirements.txt +++ b/requirements.txt @@ -62,3 +62,4 @@ lorem sphinx sphinx_rtd_theme +myst_parser From dfc12671197dcb85a8df83db3ce6df26963fc751 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 20:40:43 +0100 Subject: [PATCH 03/17] =?UTF-8?q?deploy:=20pr=C3=A1va=20k=20dokumentaci?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/deploy | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/make/deploy b/make/deploy index 635364b6..779bbd5c 100755 --- a/make/deploy +++ b/make/deploy @@ -21,3 +21,7 @@ ensure_venv cd docs make html ) +# Oprava práv k dokumentaci +setfacl -m u:www-data:x . docs docs/_build +setfacl -R -m u:www-data:rX docs/_build/html +setfacl -R -m default:u:www-data:rX docs/_build/html From 5c97735948bd727bae692415b7fef8ad53238be7 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 20:54:36 +0100 Subject: [PATCH 04/17] testweb heslo --- make/deploy | 3 +++ 1 file changed, 3 insertions(+) diff --git a/make/deploy b/make/deploy index 779bbd5c..eaccc25b 100755 --- a/make/deploy +++ b/make/deploy @@ -15,6 +15,9 @@ safe_checkout_branch "$BRANCH" install_everything systemctl --user restart mamweb-test.service +# Přihlášení +htpasswd -bc .htpasswd test lisakjelisak + # Build dokumentace ensure_venv ( From df9e473686300f0feee5ffa26cb5fda3005651ae Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Mon, 21 Nov 2022 20:59:14 +0100 Subject: [PATCH 05/17] fixup! testweb heslo --- make/deploy | 1 + 1 file changed, 1 insertion(+) diff --git a/make/deploy b/make/deploy index eaccc25b..b615f73f 100755 --- a/make/deploy +++ b/make/deploy @@ -17,6 +17,7 @@ systemctl --user restart mamweb-test.service # Přihlášení htpasswd -bc .htpasswd test lisakjelisak +setfacl -m u:www-data:r .htpasswd # Build dokumentace ensure_venv From 5985c4940f23f0000c33e17b232ba8978342c07e Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 21:03:42 +0100 Subject: [PATCH 06/17] fix --- make/sync_test_media | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/sync_test_media b/make/sync_test_media index d7991b65..44b0e830 100755 --- a/make/sync_test_media +++ b/make/sync_test_media @@ -4,6 +4,6 @@ set -exuo pipefail . make/lib.sh gimli_only -only_in_dir "$TESTWEB" +only_in_directory "$TESTWEB" rsync -av --delete "$PRODWEB/media/" ./media From 66ce7d209da592422ec9f65decfaec2e59311e79 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 21:11:50 +0100 Subject: [PATCH 07/17] =?UTF-8?q?M=C3=A9n=C4=9B=20hlu=C4=8Dn=C3=A9=20testy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/test | 1 + 1 file changed, 1 insertion(+) diff --git a/make/test b/make/test index bdf9f12b..ff5175c9 100755 --- a/make/test +++ b/make/test @@ -5,4 +5,5 @@ set -exuo pipefail ensure_venv +trap - ERR # Testy nejspíš selžou, ale nechceme kolem toho dělat další chybovou hlášku. ./manage.py test -v2 From 6b306f0849bc628bb2ec39f16c31eabdd0b15e12 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 21:57:41 +0100 Subject: [PATCH 08/17] ensure_venv v2 --- make/lib.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/make/lib.sh b/make/lib.sh index 135f859e..195b6647 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -26,6 +26,11 @@ test -e '.git' || die "Make skript spuštěn ve špatné složce, spusť ho z ko function ensure_venv { test -f "$VENV_PATH/bin/activate" || $VENV "$VENV_PATH" . "$VENV_PATH/bin/activate" + # To ale není všechno Horste – ten venv nemusí fungovat, chceme to ověřit a případně spadnout. + local SPRAVNA_CESTA="$(readlink -f "$env/bin/python")" + local SKUTECNA_CESTA="$(readlink -f "$(which python)")" + test "$SPRAVNA_CESTA" != "$SKUTECNA_CESTA" || die "Venv asi nefunguje. Prosím smaž si ho a zkus to znovu." + python -c 'print()' > /dev/null || die "Python ve venvu je rozbitý. Prosím smaž venv a zkus to znovu." } function gimli_only { From d468108188c40be69e71e84d0eeeabf894ce5517 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 21:59:38 +0100 Subject: [PATCH 09/17] ensure_web_installed --- make/lib.sh | 7 +++++++ make/run | 2 +- make/schema | 2 +- make/sync_prod_flatpages | 2 +- make/test | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/make/lib.sh b/make/lib.sh index 195b6647..a02b94e2 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -33,6 +33,13 @@ function ensure_venv { python -c 'print()' > /dev/null || die "Python ve venvu je rozbitý. Prosím smaž venv a zkus to znovu." } +function ensure_web_installed { + ensure_venv + python -c 'import django; print(django.__version__)' > /dev/null && return + echo >&2 "POZOR: Web nevypadá nainstalovaně, instaluji." + make/install_web +} + function gimli_only { # Rovnou zkontrolujeme i uživatele if test "$HOSTNAME" != gimli -o "$USER" != mam-web diff --git a/make/run b/make/run index c601593a..c3caf58d 100755 --- a/make/run +++ b/make/run @@ -3,6 +3,6 @@ set -exuo pipefail . make/lib.sh -ensure_venv +ensure_web_installed ./manage.py runserver "$@" diff --git a/make/schema b/make/schema index 9688e49a..05e84b61 100755 --- a/make/schema +++ b/make/schema @@ -3,7 +3,7 @@ set -exuo pipefail . make/lib.sh -ensure_venv +ensure_web_installed ./manage.py graph_models seminar | dot -Tpdf > schema_seminar.pdf ./manage.py graph_models -a -g | dot -Tpdf > schema_all.pdf diff --git a/make/sync_prod_flatpages b/make/sync_prod_flatpages index 4d9d8e1f..ca32c95b 100755 --- a/make/sync_prod_flatpages +++ b/make/sync_prod_flatpages @@ -3,7 +3,7 @@ set -exuo pipefail . make/lib.sh -ensure_venv +ensure_web_installed # TODO: This is very ugly, will fix in a future PR (hopefully) ssh "$GIMLI_LOGIN" " diff --git a/make/test b/make/test index ff5175c9..155d03fa 100755 --- a/make/test +++ b/make/test @@ -3,7 +3,7 @@ set -exuo pipefail . make/lib.sh -ensure_venv +ensure_web_installed trap - ERR # Testy nejspíš selžou, ale nechceme kolem toho dělat další chybovou hlášku. ./manage.py test -v2 From dfede45535ce07ff36f99945a18abc57762315a1 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 22:17:52 +0100 Subject: [PATCH 10/17] init_local --- make/init_local | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 make/init_local diff --git a/make/init_local b/make/init_local new file mode 100755 index 00000000..75ee1ccf --- /dev/null +++ b/make/init_local @@ -0,0 +1,10 @@ +#!/bin/bash + +set -exuo pipefail +. make/lib.sh + +make/install_web +ensure_venv +./manage.py testdata +./manage.py loaddata data/* +make/sync_prod_flatpages From 5e26ac5e692047b17effb549b2cf4a585262cbce Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 22:21:34 +0100 Subject: [PATCH 11/17] =?UTF-8?q?fix=20pr=C3=A1v=20v=20deploy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/lib.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/make/lib.sh b/make/lib.sh index a02b94e2..65f19e47 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -96,6 +96,8 @@ function install_everything { make/install ./manage.py migrate ./manage.py collectstatic --noinput + setfacl -R -m default:u:www-data:rX media static + setfacl -R -m u:www-data:rX media static chown -R :mam . || true chmod -R g+rX,go-w . || true } From 9c92ca6575f6afeacc7138f257f24c30dc5d9b9b Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 22:51:02 +0100 Subject: [PATCH 12/17] make/README.md z make_docs --- make/README.md | 43 +++++++++---------------------------------- 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/make/README.md b/make/README.md index 1d1baa47..0597a96b 100644 --- a/make/README.md +++ b/make/README.md @@ -1,34 +1,9 @@ -Milý člověče, M&Mí web tě vítá. Prosím, neděs se, zkusím tě provést lokálním zprovozněním webu. - -Předně: většina příkazů bude asi vypisovat spoustu detailů, takže ti doporučuji -si tento text otevřít někde separátně. Nachází se v repozitáři v -`make/README.md`, případně si jej můžeš zobrazit hezčeji vykreslený na -[Gitee](https://gitea.ks.matfyz.cz/mam/mamweb/src/branch/master/make/README.md). - -O zprovoznění webu se stará hlavně skript `make/install_web`. Ten vytvoří -virtualenv (neexistuje-li) a nainstaluje do něj závislosti webu. Pak ovšem -budeš potřebovat nahrát další data do databáze, což uděláš pomocí příkazů -`./manage.py testdata` a `./manage.py loaddata data/*`. Skript -`make/install_web` ti to kdyžtak připomene. - -Samotný web spustíš třeba pomocí `make/run`, nebo ekvivalentně `./manage.py runserver`. - -Pozor: zatímco skripty v `make/` to nepotřebují, pro použití skriptu -`./manage.py` se potřebuješ přepnout do virtuálního prostředí. To uděláš velmi -pravděpodobně spuštěním `source env/bin/activate`, před začátkem _promptu_ by -se mělo objevit `(env)`. Pro opuštění spusť `deactivate`. - -Časté problémy ------ -Je možné, že nemáš všechny potřebné závislosti v systému. Proto je možné, že -`make/install_web` vyhodí nějakou chybovou hlášku: - -- `Error: pg_config executable not found.`: nainstaluj si `libpq-dev` (na Ubuntu/Debianu, jinde se příslušný balíček může jmenovat jinak) -- Chybová hláška obsahuje `#include `: nainstaluj si `python3-dev` - - - +TL;DR: Web vyrobíš pomocí následující posloupnosti příkazů: + make/install_web + . env/bin/activate + ./manage.py testdata + ./manage.py loaddata data/* + make/run +a web potom najdeš na + +Pro detaily a nápovědu si prosím přečti dokumentaci v docs/vyvoj.rst. From d186575712d0519c7f399df6ddb642a954591e32 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 22:51:39 +0100 Subject: [PATCH 13/17] =?UTF-8?q?make/README.md:=20V=C3=ADc=20fancy,=20pou?= =?UTF-8?q?=C5=BE=C3=ADt=20make/init=5Flocal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/make/README.md b/make/README.md index 0597a96b..16b77901 100644 --- a/make/README.md +++ b/make/README.md @@ -1,9 +1,8 @@ +Milý člověče, M&Mí web tě vítá. Prosím, neděs se, zkusím tě provést lokálním zprovozněním webu. +Pro detaily a nápovědu si prosím přečti dokumentaci v docs/vyvoj.rst. + TL;DR: Web vyrobíš pomocí následující posloupnosti příkazů: - make/install_web - . env/bin/activate - ./manage.py testdata - ./manage.py loaddata data/* + make/init_local make/run a web potom najdeš na -Pro detaily a nápovědu si prosím přečti dokumentaci v docs/vyvoj.rst. From 41c2ed0dee42df8ceab7b34fe09ddef1d6064b5c Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 23:48:12 +0100 Subject: [PATCH 14/17] =?UTF-8?q?Dokumentace=20make=20skript=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/skripty.rst | 108 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 docs/skripty.rst diff --git a/docs/skripty.rst b/docs/skripty.rst new file mode 100644 index 00000000..ca45394b --- /dev/null +++ b/docs/skripty.rst @@ -0,0 +1,108 @@ +Skripty pro práci s repozitářem +=================== + +Máme dvě hlavní sady skriptů/příkazů na ovládání webu a repozitáře. Skripty pro +práci s webem psané v Pythonu jsou uložené ve složkách +``/management/commands/``, případně vestavěné, a volají se pomocí +``./manage.py ``. Oproti tomu skripty pro práci s repozitářem a pro +úpravy databáze a souborů „zvenčí“ se nejčastěji nacházejí ve složce ``make/`` +a volají se pomocí cesty: ``make/``. + +Občas existují i nějaké další skripty na různých jiných místech. Všechny by +měly být ideálně popsány asi tady. + +Make skripty +---- + +Skripty v ``make/`` se označují jako „Make skripty“. Slouží často k velkým +úkonům s repozitářem, jako je nasazení celého webu, zprovoznění lokálního webu +a podobně. + +.. hint:: Označení pro tyto skripty je dáno tím, že byly původně volány pomocí + make (tj. z Makefile). Ve skutečnosti je lze stále volat i jako ``make + ``, ale pak není možné předávat parametry a obecně je tato cesta + zastaralá a existuje jen pro zpětnou kompatibilitu se svalovou pamětí. + +Tyto skripty jsou samonosné, dají se spustit rovnou a v případě problémů si +budou hlasitě stěžovat. Pro účely debugování různých věcí jsou ale (bohužel?) +hlasité i při normálním spuštění, konkrétně vypisují všechny příkazy, které se +spouštějí (\ ``set -x``). Tyto příkazy jsou vidět za jedním či více plusky (\ ``+``). + +.. tip:: Pokud některý make skript selže, tak by na konci měl vypsat, že se něco nepovedlo. + + +Knihovna ``make/lib.sh`` +^^^^^^ + +Pro pohodlí při psaní velká část z nich využívá knihovnu uloženou +v ``make/lib.sh``. Jsou zde definované užitečné proměnné, kontroly a společný +kód. Kromě toho při inicializaci otestuje, že je skript spuštěn z kořene +repozitáře (takže to pak není potřeba zkoumat v ostatních skriptech). + +Proměnné +""""" + +Popsány jsou jen užitečné proměnné, ve skutečnosti jich je definovaných víc, +ale jsou triviální a samopopisné. + +``VENV_PATH`` : + Cesta virtuálního prostředí. Též lze přepsat. +``REPO`` : + Cesta ke gitovému repozitáři na serveru, rovnou použitelná v ``git clone`` +``GIMLI_LOGIN`` : + Přihlašovací údaje ke Gimlimu +``PRODWEB`` a ``TESTWEB`` : + Cesty ke složkám s produkčním a testovacím webem + +Funkce a další zkratky +"""""" + +``ensure_venv`` : + Zajistí, že se zbytek skriptu spustí ve virtuálním prostředí, a pokud neexistuje, tak jej založí. +``ensure_web_installed`` : + Vyzkouší, že je web (django) aspoň elementárně zprovozněno a pokud ne, tak vyzve uživatele, aby to spravil. +``gimli_only`` : + Otestuje, že je příkaz spuštěn na Gimlim, pokud tomu tak není, zeptá se, jestli si uživatel skutečně přeje zbytek skriptu vykonat +``only_in_directory `` : + Otestuje, že skript běží z konkrétní složky. Zejména použitelné s ``gimli_only`` a ``$TESTWEB`` +``safe_checkout_branch `` : + Bezpečně přepne repozitář na jinou větev. Pokud by mělo dojít k přepsání + knihovny nebo volajícího make skriptu, vyzve uživatele, aby přepnul ručně. +``install_everything`` : + Společná část kódu pro nasazování produkce a testwebu. + +Skripty pro lokální vývoj +^^^^^^^ + +``make/install_web`` (nebo ekvivalentně ``make/install``) : + Vytvoří virtualenv a nainstaluje do něj závislosti webu podle ``requirements.txt``. Následně popíše, jak vyrobit zbytek lokálního webu. +``make/run`` : + Spustí lokální web (ekvivalentní s ``./manage.py runserver``) +``make/schema`` : + Vykreslí závislosti a atributy modelů +``make/sync_prod_flatpages`` : + Stáhne z produkce aktuální statické stránky a uloží je do složky ``data/`` +``make/test`` : + Spustí testy (ekvivalentní s ``./manage.py test -v2``) +``make/init_local`` : + Zkratka za posloupnost ``make/install_web``, ``./manage.py testdata``, ``./manage.py loaddata data/*``, ``make/sync_prod_flatpages`` + +Práce s testwebem +^^^^^^^ + +``make/deploy`` : + Nasadí testweb. Volitelně bere jako parametr jméno větve, kterou má nasadit. + Rovnou nastaví přihlašování a vygeneruje příslušnou verzi dokumentace `sem `_. +``make/push_compiled_vue_to_test`` : + **Neotestováno** Nahraje Vue z lokálního počítače na testweb. (Gimli často má moc starou verzi Node.js, takže nejde zkompilovat tam) +``make/sync_test_db_aggressive`` : + Zkopíruje databázi z produkčního webu. +``make/sync_test_media`` : + Zkopíruje média (obrázky, nahrané soubory) z produkčního webu. +``make/sync_test`` : + Zkratka za ``make/sync_test_db_aggressive`` + ``make/sync_test_media``. + +Nasazení produkce +^^^^ + +``make/deploy_prod``. Před samotným nasazením zálohuje databázi a zkontroluje, že se nasazuje větev ``master``. From fef51e2a755dd3fa4c9f013841c2382e4d0856ee Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 23:52:58 +0100 Subject: [PATCH 15/17] =?UTF-8?q?fixup!=20Dokumentace=20make=20skript?= =?UTF-8?q?=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/skripty.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/skripty.rst b/docs/skripty.rst index ca45394b..aa2d8016 100644 --- a/docs/skripty.rst +++ b/docs/skripty.rst @@ -18,7 +18,7 @@ Skripty v ``make/`` se označují jako „Make skripty“. Slouží často k vel úkonům s repozitářem, jako je nasazení celého webu, zprovoznění lokálního webu a podobně. -.. hint:: Označení pro tyto skripty je dáno tím, že byly původně volány pomocí +.. note:: Označení pro tyto skripty je dáno tím, že byly původně volány pomocí make (tj. z Makefile). Ve skutečnosti je lze stále volat i jako ``make ``, ale pak není možné předávat parametry a obecně je tato cesta zastaralá a existuje jen pro zpětnou kompatibilitu se svalovou pamětí. From 1b34c2dbc443cc9202cbd583a5bb7a09e7dff4b2 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 23:59:19 +0100 Subject: [PATCH 16/17] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20do=20sidebaru?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.rst b/docs/index.rst index 10d6016f..92d27c50 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -13,6 +13,7 @@ Vítejte v dokumentaci M&Mího webu! vyvoj sphinx dalsi_soubory + skripty modules/modules zapisy/zapisy From 61bb9786b30d1e26e3558efbd584e00c3bdc3ad4 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 22 Nov 2022 00:00:22 +0100 Subject: [PATCH 17/17] =?UTF-8?q?Zru=C5=A1en=C3=AD=20dvojte=C4=8Dek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/skripty.rst | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/skripty.rst b/docs/skripty.rst index aa2d8016..8f9e1064 100644 --- a/docs/skripty.rst +++ b/docs/skripty.rst @@ -45,61 +45,61 @@ Proměnné Popsány jsou jen užitečné proměnné, ve skutečnosti jich je definovaných víc, ale jsou triviální a samopopisné. -``VENV_PATH`` : +``VENV_PATH`` Cesta virtuálního prostředí. Též lze přepsat. -``REPO`` : +``REPO`` Cesta ke gitovému repozitáři na serveru, rovnou použitelná v ``git clone`` -``GIMLI_LOGIN`` : +``GIMLI_LOGIN`` Přihlašovací údaje ke Gimlimu -``PRODWEB`` a ``TESTWEB`` : +``PRODWEB`` a ``TESTWEB`` Cesty ke složkám s produkčním a testovacím webem Funkce a další zkratky """""" -``ensure_venv`` : +``ensure_venv`` Zajistí, že se zbytek skriptu spustí ve virtuálním prostředí, a pokud neexistuje, tak jej založí. -``ensure_web_installed`` : +``ensure_web_installed`` Vyzkouší, že je web (django) aspoň elementárně zprovozněno a pokud ne, tak vyzve uživatele, aby to spravil. -``gimli_only`` : +``gimli_only`` Otestuje, že je příkaz spuštěn na Gimlim, pokud tomu tak není, zeptá se, jestli si uživatel skutečně přeje zbytek skriptu vykonat -``only_in_directory `` : +``only_in_directory `` Otestuje, že skript běží z konkrétní složky. Zejména použitelné s ``gimli_only`` a ``$TESTWEB`` -``safe_checkout_branch `` : +``safe_checkout_branch `` Bezpečně přepne repozitář na jinou větev. Pokud by mělo dojít k přepsání knihovny nebo volajícího make skriptu, vyzve uživatele, aby přepnul ručně. -``install_everything`` : +``install_everything`` Společná část kódu pro nasazování produkce a testwebu. Skripty pro lokální vývoj ^^^^^^^ -``make/install_web`` (nebo ekvivalentně ``make/install``) : +``make/install_web`` (nebo ekvivalentně ``make/install``) Vytvoří virtualenv a nainstaluje do něj závislosti webu podle ``requirements.txt``. Následně popíše, jak vyrobit zbytek lokálního webu. -``make/run`` : +``make/run`` Spustí lokální web (ekvivalentní s ``./manage.py runserver``) -``make/schema`` : +``make/schema`` Vykreslí závislosti a atributy modelů -``make/sync_prod_flatpages`` : +``make/sync_prod_flatpages`` Stáhne z produkce aktuální statické stránky a uloží je do složky ``data/`` -``make/test`` : +``make/test`` Spustí testy (ekvivalentní s ``./manage.py test -v2``) -``make/init_local`` : +``make/init_local`` Zkratka za posloupnost ``make/install_web``, ``./manage.py testdata``, ``./manage.py loaddata data/*``, ``make/sync_prod_flatpages`` Práce s testwebem ^^^^^^^ -``make/deploy`` : +``make/deploy`` Nasadí testweb. Volitelně bere jako parametr jméno větve, kterou má nasadit. Rovnou nastaví přihlašování a vygeneruje příslušnou verzi dokumentace `sem `_. -``make/push_compiled_vue_to_test`` : +``make/push_compiled_vue_to_test`` **Neotestováno** Nahraje Vue z lokálního počítače na testweb. (Gimli často má moc starou verzi Node.js, takže nejde zkompilovat tam) -``make/sync_test_db_aggressive`` : +``make/sync_test_db_aggressive`` Zkopíruje databázi z produkčního webu. -``make/sync_test_media`` : +``make/sync_test_media`` Zkopíruje média (obrázky, nahrané soubory) z produkčního webu. -``make/sync_test`` : +``make/sync_test`` Zkratka za ``make/sync_test_db_aggressive`` + ``make/sync_test_media``. Nasazení produkce