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

@ -111,6 +111,17 @@ jobs:
path: release-assets
merge-multiple: true
# The installers carry no application: each downloads the newest release
# when the user runs it. The macOS one is zipped because a release asset
# loses its executable bit, which a .command needs to be double-clicked.
- name: Collect installers
run: |
cp installers/maturita-installer-linux.sh release-assets/
cp installers/maturita-installer-windows.cmd release-assets/
chmod +x installers/maturita-installer-macos.command
(cd installers && zip -q ../release-assets/maturita-installer-macos.zip \
maturita-installer-macos.command)
- name: List assets
run: find release-assets -type f -print
@ -121,6 +132,9 @@ jobs:
release-assets/maturita-linux-*.AppImage
release-assets/maturita-windows-x64.zip
release-assets/maturita-macos-*.zip
release-assets/maturita-installer-macos.zip
release-assets/maturita-installer-windows.cmd
release-assets/maturita-installer-linux.sh
generate_release_notes: true
fail_on_unmatched_files: true
env: