Align native and Flatpak window IDs with installed desktop entries and icons, while preserving existing window state. Keep packaging compatible with the immutable 0.8.0 inputs and test both launcher generations. Refs #462
2.3 KiB
title, description, nav_order
| title | description | nav_order |
|---|---|---|
| Release packaging | Shared packaging automation and application-specific release definitions. | 20 |
Spotifast keeps release asset definitions, nFPM configuration and native AUR and
Homebrew templates in native-packages.yaml and packaging/. Common automation comes from the pinned
native-packages gem, installed with gem install native-packages --version 0.6.0.
Stable releases build the existing Linux, macOS and Windows artifacts first. The shared packaging workflow then verifies their published checksums and attaches Linux DEB/RPM packages and a recipe archive. AUR and Homebrew publication require their configured repository variables and secrets. PRs build packages from a pinned published release without publishing them. Installation checks cover Ubuntu 24.04, Debian 13, Fedora 41 and current Fedora on amd64 and arm64, including the GUI libraries loaded at runtime. They do not exercise desktop rendering or Spotify playback. Release checks run after the packages are attached.
On main, after 0.8.0, Linux launcher and icon filenames use Spotifast, as does the application's window identity. Historical release fixtures retain their original matching filenames and window class because their binaries are unchanged. Packaging regressions cover current and historical inputs; installation checks require the exact identity expected for that version.
The application retains its Flatpak manifests, macOS bundle/signing configuration and Windows installer configuration. nFPM does not replace these platform tools. See the repository's maintainer packaging guide for commands and the shared tool's platform coverage for the boundaries.
Linux and macOS share native-packages.yaml. The Linux workflow selects its two
architecture targets after release assets exist. The native Mac job selects
macos-universal with --defer-recipes, so it can package the app before the
Homebrew download exists, without requiring Linux inputs or AUR tooling.
Complete Apple CI secrets
enable shared signing, notarization and ticket validation automatically before
checksums are written. Earlier downloads retain their original signing status.