mirror of
https://github.com/storytold/gridcraft.git
synced 2026-10-29 05:06:51 -06:00
Release: Flatpak x86_64/aarch64, AppImage zsync updates, README Downloads (#14)
- AppImages embed gh-releases-zsync update information and ship a .zsync beside them; the linux job installs zsync and checks both. - New flatpak job (x86_64 on ubuntu-24.04, aarch64 on ubuntu-24.04-arm) repackages the linux tarball with packaging/linux/flatpak-bundle.sh and the new bundle manifest; the from-source manifest gets the same commented finish-args, and packaging-lint checks that the two agree. - Jobs that sign nothing (version, linux, flatpak, web, FreeBSD packaging) no longer use the release environment, so a branch dispatch is a dry run; the draft-release job still needs the signed jobs and only runs on the release branch. - README: Downloads section listing every build. Co-authored-by: Brandon Thomas <shared2@storyteller.ai> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Brandon Thomas
Claude Opus 5.5
parent
a3cbb9b9a7
commit
64c223c5f8
+18
-6
@@ -67,8 +67,10 @@ After the draft is published, the workflow refuses to touch that version again,
|
||||
**Test runs:** *Actions → Release → Run workflow* runs the whole pipeline by hand. The optional
|
||||
`version` input (such as `0.2.0-rc.1`) overrides `Cargo.toml` for that run only; each job
|
||||
applies it with `cargo xtask version set` before building, so the binaries report it too. The
|
||||
run still needs the `release` environment, which only the `release` branch can use, so pick
|
||||
that branch in the dialog.
|
||||
signing jobs and the draft release need the `release` environment, which only the `release`
|
||||
branch can use. Run from any other branch, it's a dry run: Linux, Flatpak, FreeBSD and web build
|
||||
and upload their artifacts, the environment refuses macOS and Windows, and no release is drafted
|
||||
(`gh workflow run release.yml --ref <branch>`).
|
||||
|
||||
## What gets built
|
||||
|
||||
@@ -78,8 +80,9 @@ that branch in the dialog.
|
||||
| Windows 10+ x64 | `gridcraft-<v>-windows-x64.msi`, `gridcraft-<v>-windows-x64-portable.zip` | `windows-latest` |
|
||||
| Windows 10+ x86 (32-bit) | `gridcraft-<v>-windows-x86.msi`, `gridcraft-<v>-windows-x86-portable.zip` | `windows-latest` |
|
||||
| Windows 11 ARM64 | `gridcraft-<v>-windows-arm64.msi`, `…-portable.zip` (cross-compiled, signed like x64) | `windows-latest`; installed and run on `windows-11-arm` by `windows-arm64.yml` |
|
||||
| Linux x86_64 | `gridcraft-<v>-linux-x86_64.{AppImage,deb,rpm,tar.gz}` | `ubuntu-22.04` |
|
||||
| Linux aarch64 | `gridcraft-<v>-linux-aarch64.{AppImage,deb,rpm,tar.gz}` | `ubuntu-22.04-arm` |
|
||||
| Linux x86_64 | `gridcraft-<v>-linux-x86_64.{AppImage,AppImage.zsync,deb,rpm,tar.gz}` | `ubuntu-22.04` |
|
||||
| Linux aarch64 | `gridcraft-<v>-linux-aarch64.{AppImage,AppImage.zsync,deb,rpm,tar.gz}` | `ubuntu-22.04-arm` |
|
||||
| Flatpak x86_64, aarch64 | `gridcraft-<v>-linux-<arch>.flatpak` (repackages the Linux tarball) | `ubuntu-24.04`, `ubuntu-24.04-arm` |
|
||||
| FreeBSD 14 x86_64 | `gridcraft-<v>-freebsd-x86_64.tar.gz` | FreeBSD 14.3 VM (`freebsd.yml`, called by `release.yml`) |
|
||||
| Web | `gridcraft-web-<v>.zip` (static site; see [`packaging/web/README.md`](../packaging/web/README.md)) | `ubuntu-latest` |
|
||||
|
||||
@@ -137,10 +140,19 @@ Locally on Windows: `dotnet tool install -g wix --version 5.0.2`, then
|
||||
binaries need glibc ≥ 2.35. X11/Wayland/xkbcommon/Vulkan/EGL are loaded at runtime; the
|
||||
packages declare them (see `nfpm.yaml`).
|
||||
|
||||
Each AppImage embeds update information
|
||||
(`gh-releases-zsync|storytold|gridcraft|latest|gridcraft-*-linux-<arch>.AppImage.zsync`), and the
|
||||
matching `.zsync` is published beside it, so AppImageUpdate and AppImageLauncher fetch only the
|
||||
changed blocks of the newest published release. appimagetool writes the `.zsync` when
|
||||
`zsyncmake` (the `zsync` package) is installed; without it the script warns and skips it.
|
||||
|
||||
Flatpak: `packaging/linux/flatpak/ai.storyteller.gridcraft.yml` builds from source and is ready
|
||||
for a Flathub submission (freedesktop 25.08; Wayland + X11 fallback, `dri`, IPC; Documents and
|
||||
Downloads; everything else through portals). CI validates it but doesn't build it; build by hand
|
||||
with the commands in its header.
|
||||
Downloads; everything else through portals); build it by hand with the commands in its header.
|
||||
The single-file `.flatpak` on each release comes from `packaging/linux/flatpak-bundle.sh` and
|
||||
`ai.storyteller.gridcraft.bundle.yml`, which repackage the release's Linux tarball (no Rust
|
||||
build) and smoke-test the result in the sandbox. packaging-lint checks that both manifests
|
||||
agree on runtime and finish-args.
|
||||
|
||||
Locally (on Linux): install [nfpm](https://nfpm.goreleaser.com/install/), then
|
||||
`packaging/linux/package.sh` (or `--formats "deb tar"`).
|
||||
|
||||
Reference in New Issue
Block a user