Commit graph

46 commits

Author SHA1 Message Date
Pavel "LEdoian" Turinsky
c917655a22 Při make/init_local nesyncujeme flatpages
Je to otravné a navíc to vyžaduje klíč…
2024-06-03 14:02:05 +02:00
Pavel "LEdoian" Turinsky
61e71efcc4 Make: správně nastavit orgům práva
Tohle je trošku fishy, protože by se to teoreticky mělo dít i u
produkce, leč tam zůstávají práva persistentně v DB (a až se rozbijí,
tak se budeme divit)…
2023-05-15 23:45:26 +02:00
Pavel "LEdoian" Turinsky
3a1aade3a2 Testy: bereme parametry
Umožňuje testovat konkrétní moduly a nespouštět vždy všechno.
2023-01-04 02:11:15 +01:00
Pavel "LEdoian" Turinsky
af6628367f Testy: Schováváme si databázi napříč běhy
Při běžení testů nejdéle trvá namigrovat (prázdnou) databázi. Toto tento
krok přeskočí.

By default django pro testy používá in-memory SQLite3 databázi, která se
schovat přirozeně nedá. Používání souborů trvá déle (data níž), ale
další běhy už jsou rychlé.

Zatím nevím, jestli se někde nemůže omylem schovávat nějaký nežádoucí
stav, ale testy mi i opakovaně běží, takže se to asi nerozbíjí úplně
moc. Na první pohled je uložená databáze prázdná.

Pro produkci a CI bych klidně běžel testy od nuly, tam nevadí čekat pár
desítek sekund až jednotky minut na výsledek. Tato optimalizace je
důležitá jen pro lokální vývoj, kde je žádoucí mít testy co
nejrychlejší.

V .gitignore už přesně toto jméno souboru je. Nevím proč, ale možná to
tak bylo by default v některém dávném Djangu.

Data
---
Spouštěl jsem příkaz `time ./manage.py test [--keepdb] api`. Běhy byly
relativně konzistentní (±1 s) a trvaly u mě:
- In memory SQLite (default): 26 s
- První spuštění s db na disku (HDD): 44 s
- Následná spuštění: 7.7 s
Data jsou nejspíš zkreslena tím, že všechno je nejspíš nacachované v
systému, ale i tak je vidět zřetelné zrychlení.

Původní motivace: úplně triviální a nedatabázový test na starém
notebooku běžel kolem 3:14, což je zoufale nepoužitelné když si chci
napsat testy jako pomůcku pro vývoj.
2023-01-04 01:51:02 +01:00
58f05724e1 hotfix: 485c4180 má špatně proměnnou 2022-12-19 21:25:37 +01:00
Pavel "LEdoian" Turinsky
485c4180da make/lib: podpora pro zatím neexistující větve
(pokud jsem to napsal správně.)
2022-12-19 21:09:15 +01:00
Pavel "LEdoian" Turinsky
9fefbd4bba Fix logiky 2022-11-24 02:50:46 +01:00
Pavel "LEdoian" Turinsky
fcd1320b45 Fix cesty 2022-11-24 02:23:03 +01:00
Pavel "LEdoian" Turinsky
d186575712 make/README.md: Víc fancy, použít make/init_local 2022-11-21 22:51:39 +01:00
Pavel "LEdoian" Turinsky
9c92ca6575 make/README.md z make_docs 2022-11-21 22:51:29 +01:00
Pavel "LEdoian" Turinsky
5e26ac5e69 fix práv v deploy 2022-11-21 22:21:34 +01:00
Pavel "LEdoian" Turinsky
dfede45535 init_local 2022-11-21 22:17:52 +01:00
Pavel "LEdoian" Turinsky
d468108188 ensure_web_installed 2022-11-21 21:59:38 +01:00
Pavel "LEdoian" Turinsky
6b306f0849 ensure_venv v2 2022-11-21 21:57:41 +01:00
Pavel "LEdoian" Turinsky
66ce7d209d Méně hlučné testy 2022-11-21 21:11:50 +01:00
Pavel "LEdoian" Turinsky
5985c4940f fix 2022-11-21 21:03:58 +01:00
MaM Web user
df9e473686 fixup! testweb heslo 2022-11-21 20:59:14 +01:00
Pavel "LEdoian" Turinsky
5c97735948 testweb heslo 2022-11-21 20:54:36 +01:00
Pavel "LEdoian" Turinsky
dfc1267119 deploy: práva k dokumentaci 2022-11-21 20:40:43 +01:00
Pavel "LEdoian" Turinsky
25fcddfba8 Při deployi vyrob dokumentaci 2022-11-21 20:18:22 +01:00
Pavel "LEdoian" Turinsky
a184871bf9 make/lib: Když se to nepovede, tak budeme křičet
Uvědomil jsem si, že aktuálně nejde skoro vůbec poznat, jestli make
skript uspěl nebo ne. Tohle by se mělo vypsat, když se nepovede.

Víc by se mi líbilo, kdyby úspěšné doběhnutí ohlásilo "OK", ale to
neumím udělat bez nějakého zápatí skriptů.

(Resp. uměl bych: make/lib může být interpretr, který na začátku
zinicalizuje proměnné, pak natáhne příslušný skript a na konci ohlásí
OK. Ale přijde mi to trochu moc magické, takže pokud někdo nebude nějak
extra pro, tak to tak neudělám :-))
2022-11-20 05:16:02 +01:00
Pavel "LEdoian" Turinsky
3fcc03b769 Shellcheck :-)
Ne že by mi na tom záviselo, ale kód to nezhoršuje a pokud to aspoň o
trochu zmenší šanci na nějaké přehlédnutí, tak je to OK.

A spoustu varování shellchecku jsem vyignoroval a nemíním plevelit kód
komentáři, o čem všem vím a on ne :-)
2022-11-20 05:08:24 +01:00
Pavel "LEdoian" Turinsky
b1e6448c3c safe_checkout_branch: varování 2022-11-20 04:57:48 +01:00
Pavel "LEdoian" Turinsky
34e751fd69 fixup! make/lib: safe_checkout_branch stačí 1 parametr 2022-11-20 04:52:51 +01:00
Pavel "LEdoian" Turinsky
1615e92159 safe_checkout_branch: porovnáváme proti upstreamu, ne aktuální verzi. 2022-11-20 04:45:48 +01:00
Pavel "LEdoian" Turinsky
a390ef0329 make/lib: safe_checkout_branch stačí 1 parametr 2022-11-20 04:40:03 +01:00
Pavel "LEdoian" Turinsky
e4c2eda955 make/run bere parametry 2022-11-20 04:38:03 +01:00
Pavel "LEdoian" Turinsky
5963089539 make/lib: .git může být i normální soubor (worktree) 2022-11-20 04:37:27 +01:00
Pavel "LEdoian" Turinsky
28760e2c4d Smazán install_venv
Všechny make skripty stejně vyrábí venv přes `ensure_venv` a protože web
nikdo nikdy nebude instalovat jinak (nebo když bude, tak asi ví, co
dělá), tak tohle nedává smysl spouštět.
2022-11-20 04:33:19 +01:00
Pavel "LEdoian" Turinsky
e36410ee82 make/lib: komentáře kolem git-rev-parse 2022-11-20 04:27:16 +01:00
Pavel "LEdoian" Turinsky
ac9cb53185 Hezčí SSH spojení
- Přidal jsem `set -euxo pipefail`, takže nejsou potřeba `&&` a obecně se
  to chová víc jako ostatní make skripty
- Venv se zapíná stejně jako v lokálních skriptech, takže se dá
  jednoduše změnit jeho cesta
2022-11-20 04:23:41 +01:00
Pavel "LEdoian" Turinsky
346079cee3 make/lib: Funkce install_everything je jen pro Gimliho 2022-11-20 04:17:57 +01:00
Pavel "LEdoian" Turinsky
d086501095 make/lib: lokální proměnné 2022-11-20 04:15:00 +01:00
Pavel "LEdoian" Turinsky
31834b7f8a Zrušen make/all
Nic moc nedělal, tak jsem ho nahradil (IMHO lepší) dokumentací.
2022-11-20 04:12:35 +01:00
Pavel 'LEdoian' Turinsky
7c90c1ef5e sync_prod_flatpages 2022-11-15 12:43:31 +01:00
Pavel 'LEdoian' Turinsky
5abd93d27f Zbytek sync_test 2022-11-15 12:17:50 +01:00
Pavel 'LEdoian' Turinsky
5cfadf9236 Make: přesunuty sync_test_media
Taky jsem smazal nějaké komentáře v Makefile_old, aby nepřekážely.
2022-11-15 12:05:12 +01:00
Pavel 'LEdoian' Turinsky
0458abb419 Kontroly prerekvizit do knihovny 2022-11-15 11:58:22 +01:00
Pavel 'LEdoian' Turinsky
f6d939fc31 Přebytečný středník 2022-11-15 11:48:48 +01:00
Pavel "LEdoian" Turinsky
323477dbf2 Smazán venv_check
Je úplně k ničemu, když si nové skripty zapínají venv samy
2022-11-14 23:21:20 +01:00
Pavel "LEdoian" Turinsky
d80babfd73 Smazán obsah make/sync*
Nic tam nebylo a teď je vidět ve `file *`, že tam nic není.
2022-11-14 23:20:55 +01:00
Pavel "LEdoian" Turinsky
a9e7cd7af2 Deploy v novém kabátu
prosím čtěte…
2022-11-14 23:16:19 +01:00
Pavel "LEdoian" Turinsky
4f7c4057ea fix uvozovek
Thanks shellcheck
2022-11-14 21:37:01 +01:00
Pavel "LEdoian" Turinsky
8b36e79f04 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.
2022-11-07 23:14:06 +01:00
Pavel "LEdoian" Turinsky
75f388ddfb Fix symlink 2022-11-07 22:34:54 +01:00
Pavel "LEdoian" Turinsky
e3ebb925e1 Reforma Makefilů WIP 1 2022-11-07 22:32:06 +01:00