Add installers that fetch the newest release when run.

Each installer carries no application of its own and resolves
/releases/latest/download/ at the moment it runs, so the file never goes
stale and the same download keeps working across future releases.

macOS installs into /Applications, falling back to the user's own folder
when that is not writable, and clears the quarantine flag the unsigned
build would otherwise trip over. Windows extracts over any existing
install rather than replacing the folder, so the progress files kept
inside it survive, and adds a Start menu entry. Linux drops the AppImage
in ~/Applications with a desktop entry and its icon.

Publish the macOS one zipped, because a release asset loses its
executable bit and a .command needs one to be double-clicked.

The .cmd also had to be excluded from the *.cmd ignore rule, which comes
from the kernel section of the template and targets build artifacts.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-09-17 15:16:46 +02:00
commit 7d503d6c5b
6 changed files with 286 additions and 0 deletions

View file

@ -139,6 +139,24 @@ are required:
Progress and settings are saved next to the AppImage / `.app` / unzipped
folder in a `progress/` directory.
#### Installers
Each release also ships a small installer that contains no application of its
own: it downloads the newest build when you run it, so the file never goes out
of date. Once installed, the app keeps itself up to date on its own — it checks
shortly after startup and offers the update in a banner, and there is a manual
check under **Settings → Updates**.
| Platform | Asset | How to run |
| -------- | ----- | ---------- |
| macOS (Apple Silicon) | `maturita-installer-macos.zip` | Unzip, then double-click the `.command` file |
| Windows (x64) | `maturita-installer-windows.cmd` | Double-click the file |
| Linux (x86_64) | `maturita-installer-linux.sh` | `sh maturita-installer-linux.sh` |
The builds are not code-signed, so the first launch needs one extra step:
on macOS right-click the installer and pick **Open**, and on Windows choose
**More info → Run anyway** if SmartScreen appears.
To cut a release yourself (needs a GitHub remote with Actions enabled):
```bash
@ -600,6 +618,24 @@ při pushi tagu `v*`. Kompilátor ani vývojové balíčky GTK nejsou potřeba:
Postup a nastavení se ukládají vedle AppImage / `.app` / rozbalené složky
do adresáře `progress/`.
#### Instalátory
Ke každému releasu vychází i malý instalátor, který samotnou aplikaci
neobsahuje: nejnovější build si stáhne až při spuštění, takže soubor nikdy
nezestárne. Nainstalovaná aplikace se pak udržuje aktuální sama — chvíli po
startu zkontroluje nové verze a nabídne je v pruhu nahoře, ruční kontrola je
v **Nastavení → Aktualizace**.
| Platforma | Soubor | Spuštění |
| --------- | ------ | -------- |
| macOS (Apple Silicon) | `maturita-installer-macos.zip` | Rozbalit a dvojklik na soubor `.command` |
| Windows (x64) | `maturita-installer-windows.cmd` | Dvojklik na soubor |
| Linux (x86_64) | `maturita-installer-linux.sh` | `sh maturita-installer-linux.sh` |
Buildy nejsou podepsané, takže první spuštění chce jeden krok navíc: na macOS
klikněte na instalátor pravým tlačítkem a zvolte **Otevřít**, na Windows při
hlášce SmartScreenu **Další informace → Přesto spustit**.
Vytvoření releasu (GitHub remote s Actions):
```bash