Binárka ke stažení a release z tagu #3

Merged
david-spacil merged 5 commits from agents/claude/binarka-a-release into main 2026-08-21 17:40:08 +02:00
Owner

Stáhni a spusť: jednosouborová binárka pro Linux, uvnitř Python, Flask, šablony i styly. Nic se neinstaluje.

Kam s databází

Doteď to bylo dice.db v pracovním adresáři, což se u binárky rozpadá — ta se rozbaluje do dočasného adresáře a pouští se odkudkoli, takže by se databáze rozsypala po disku podle toho, kde zrovna stojíš.

Spuštěno Databáze
binárkou ~/.local/share/kostky/dice.db
ze zdrojáků dice.db v pracovním adresáři, jako dosud

DICE_DB přebije obojí. Server cestu navíc vypisuje při startu, ať se na ni nemusí ptát.

Stavba

./build.sh staví v kontejneru na AlmaLinux 8, ne na hostiteli. Fedora 44 má glibc 2.43 a glibc drží zpětnou kompatibilitu, ne dopřednou — binárka postavená tady by nešla spustit nikde se starším systémem. Proti 2.28 jede na RHEL 8, Debianu 10, Ubuntu 20.04 a novějších. Výsledek má 11 MB.

Release

.gitea/workflows/binarka.yml na runneru homelab: postaví binárku, projede testy, zkusí ji nastartovat a proklikat /, /board i statiku, a na otagovaném commitu ji pověsí na release jako kostky-linux-x86_64. Nad pull requesty běží totéž bez posledního kroku, takže rozbitá stavba se pozná dřív než na tagu. Opakovaný build starou přílohu stejného jména nahradí.

Záměrně bez hotových akcí z marketplace — odpadá tím starost, jestli je v kontejneru node.

Ověřeno

  • 84 testů prochází, z toho 4 nové na umístění databáze
  • odehraná hra do vítězství přímo z binárky; v databázi na správném místě sedí dohráno i winner_id
  • /, /board s QR kódem, /board/1/panel, /stats, /static/style.css — vše 200
  • CLI beze změny

Windows a macOS zatím ne — PyInstaller musí stavět na cílovém systému.

Stáhni a spusť: jednosouborová binárka pro Linux, uvnitř Python, Flask, šablony i styly. Nic se neinstaluje. ## Kam s databází Doteď to bylo `dice.db` v pracovním adresáři, což se u binárky rozpadá — ta se rozbaluje do dočasného adresáře a pouští se odkudkoli, takže by se databáze rozsypala po disku podle toho, kde zrovna stojíš. | Spuštěno | Databáze | |---|---| | binárkou | `~/.local/share/kostky/dice.db` | | ze zdrojáků | `dice.db` v pracovním adresáři, jako dosud | `DICE_DB` přebije obojí. Server cestu navíc vypisuje při startu, ať se na ni nemusí ptát. ## Stavba `./build.sh` staví **v kontejneru na AlmaLinux 8**, ne na hostiteli. Fedora 44 má glibc 2.43 a glibc drží zpětnou kompatibilitu, ne dopřednou — binárka postavená tady by nešla spustit nikde se starším systémem. Proti 2.28 jede na RHEL 8, Debianu 10, Ubuntu 20.04 a novějších. Výsledek má 11 MB. ## Release `.gitea/workflows/binarka.yml` na runneru `homelab`: postaví binárku, projede testy, zkusí ji nastartovat a proklikat `/`, `/board` i statiku, a na otagovaném commitu ji pověsí na release jako `kostky-linux-x86_64`. Nad pull requesty běží totéž bez posledního kroku, takže rozbitá stavba se pozná dřív než na tagu. Opakovaný build starou přílohu stejného jména nahradí. Záměrně bez hotových akcí z marketplace — odpadá tím starost, jestli je v kontejneru node. ## Ověřeno - 84 testů prochází, z toho 4 nové na umístění databáze - odehraná hra do vítězství přímo z binárky; v databázi na správném místě sedí `dohráno` i `winner_id` - `/`, `/board` s QR kódem, `/board/1/panel`, `/stats`, `/static/style.css` — vše 200 - CLI beze změny Windows a macOS zatím ne — PyInstaller musí stavět na cílovém systému.
david-spacil added 2 commits 2026-08-21 17:19:05 +02:00
Stáhni a spusť: jednosouborová binárka pro Linux, uvnitř Python, Flask,
šablony i styly. Staví se ./build.sh v kontejneru na AlmaLinux 8, protože
binárka slinkovaná proti glibc z Fedory 44 by nešla spustit nikde se
starším systémem.

Databáze tím dostává dvě různá místa. Ze zdrojáků zůstává dice.db
v pracovním adresáři, ať se dá mít víc sad vedle sebe. Z binárky jde do
~/.local/share/kostky/ — binárka se rozbaluje do dočasného adresáře
a pouští se odkudkoli, takže relativní cesta by databázi rozsypala po
disku. DICE_DB přebije obojí.

Server teď cestu k databázi vypisuje při startu, ať se na ni nemusí ptát.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
release se staví sám z tagu
binárka / linux (pull_request) Failing after 0s
cb39036724
Otagovaný commit postaví binárku na runneru, projede testy, zkusí ji
nastartovat a pověsí ji na release. Nad pull requesty běží totéž bez
posledního kroku, ať se rozbitá stavba pozná dřív než na tagu.

Staví se v kontejneru na AlmaLinux 8 ze stejného důvodu jako build.sh —
kvůli glibc. Záměrně bez hotových akcí z marketplace: na vlastním runneru
tím odpadá starost, jestli je v kontejneru node.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
david-spacil added 1 commit 2026-08-21 17:23:11 +02:00
stavba bez kontejneru, proti Pythonu od uv
binárka / linux (pull_request) Failing after 4s
8aa54dc7a0
Runner běží v host módu, bez dockeru, takže se v něm kontejner na AlmaLinux
spustit nedá. Ukázalo se ale, že kontejner potřeba není: stačí stavět proti
samostatnému CPythonu od uv. Ten je slinkovaný s glibc 2.17 a nic
z hostitele se do binárky nedostane — změřeno objdumpem přes všechno, co
se z ní rozbaluje. Výsledek je tedy přenositelnější než přes AlmaLinux 8
(2.28) a build.sh je o polovinu kratší.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
david-spacil added 1 commit 2026-08-21 17:24:40 +02:00
runner potřebuje binutils, doinstaluje si je sám
binárka / linux (pull_request) Successful in 14s
b4864981ad
PyInstaller hledá objdumpem, na kterých knihovnách binárka visí. Runner
v host módu ho nemá — je to jediné, co musí být na hostiteli, zbytek si
obstará uv.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
david-spacil added 1 commit 2026-08-21 17:36:03 +02:00
testy nad pull requesty a nad main
binárka / linux (pull_request) Successful in 10s
testy / pytest (3.11) (pull_request) Successful in 1s
testy / pytest (3.12) (pull_request) Successful in 2s
testy / pytest (3.13) (pull_request) Successful in 2s
testy / pytest (3.14) (pull_request) Successful in 3s
2a03474af8
Matice Python 3.11 až 3.14 — u projektu, který deklaruje >=3.11, se hodí
vědět, že to na všech čtyřech opravdu jede. Pythony obstará uv, na
hostiteli nemusí být žádný.

K pytestu ještě skriptovaná partie v terminálové verzi. Pytest sahá na
core.py, prompty v dice.py nikdo netestoval; tohle projde dvě nuly, třetí
s vynulováním a výhru tak, jak to odehraje člověk.

Runner sdílí pracovní adresář mezi variantami matice, proto max-parallel 1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
david-spacil merged commit fa66635b95 into main 2026-08-21 17:40:08 +02:00
david-spacil deleted branch agents/claude/binarka-a-release 2026-08-21 17:40:08 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: david-spacil/dice-counter#3