binárka / linux (pull_request) Successful in 11s
testy / pytest (3.11) (pull_request) Successful in 1s
testy / pytest (3.12) (pull_request) Successful in 1s
testy / pytest (3.13) (pull_request) Successful in 1s
testy / pytest (3.14) (pull_request) Successful in 0s
PyInstaller neumí křížovou kompilaci — binárku pro každý systém musí postavit ten systém. Vlastní runner pro Windows a hlavně pro macOS by byl nepoměr, tak si tyhle stroje půjčujeme od GitHub Actions. GitHub je jen půjčená dílna, ne druhý domov projektu: repozitář se tam z Gitey zrcadlí, hotové soubory se posílají zpátky na zdejší release přes Gitea API a stránka s releasy zůstává jedna. Linux se tam schválně nestaví; doma to jde proti glibc 2.17 a je to zároveň pojistka, kdyby GitHub vypadl. build.sh je společný pro všechny tři systémy, liší se jen tím, že Windows dává spustitelné soubory venvu do Scripts/ místo bin/. Ořezání symbolů zůstává jen Linuxu: na macOS by rozbilo podpis, který si PyInstaller sám přidává a bez kterého se binárka na Apple Silicon vůbec nespustí. Zkouška po stavbě je stejná jako u linuxové: nastartovat, stáhnout si stránku i styly a ověřit, že se založila databáze. Nepodepsané binárky si Gatekeeper ani SmartScreen nenechají líbit, tak je v README napsané, co s tím — certifikáty za tisíce ročně by na počitadlo kostek byly nesmysl. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
32 lines
825 B
RPMSpec
32 lines
825 B
RPMSpec
# -*- mode: python ; coding: utf-8 -*-
|
|
"""Jedna binárka se vším: Python, Flask, šablony i styly.
|
|
|
|
Staví se přes `./build.sh`, ne ručně — ta se stará o to, aby výsledek jel
|
|
i na starších systémech, než je ten tvůj.
|
|
"""
|
|
|
|
import sys
|
|
|
|
analysis = Analysis(
|
|
["web.py"],
|
|
pathex=["."],
|
|
datas=[("templates", "templates"), ("static", "static")],
|
|
noarchive=False,
|
|
)
|
|
|
|
pyz = PYZ(analysis.pure)
|
|
|
|
exe = EXE(
|
|
pyz,
|
|
analysis.scripts,
|
|
analysis.binaries,
|
|
analysis.datas,
|
|
name="kostky",
|
|
console=True,
|
|
# Ořezání symbolů šetří pár megabajtů, ale jen na Linuxu. Na macOS by
|
|
# rozbilo podpis, který si PyInstaller sám přidává a bez kterého se
|
|
# binárka na Apple Silicon vůbec nespustí; na Windows nedělá nic.
|
|
strip=sys.platform == "linux",
|
|
upx=False,
|
|
)
|