Linux release: .deb and .rpm (AppImage needs a real x86_64 host)
linuxdeploy and the AppImage runtime can't run under QEMU (amd64 emulation on Apple silicon). The build is split into cached steps; the release script uploads .rpm too. The .deb installs cleanly on Debian 12. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
# Linux release bundles (AppImage + .deb) for the Gitea release, built in a clean Debian 12 container:
|
||||
# Linux release bundles (.deb + .rpm) for the Gitea release, built in a clean Debian 12 container:
|
||||
# docker buildx build --platform linux/amd64 -f kestrove-desktop/scripts/linux.Dockerfile \
|
||||
# --target out -o type=local,dest=release/desktop ..
|
||||
# Build context = the folder holding kestrove-core and kestrove-desktop. Debian 12's glibc (2.36) keeps
|
||||
# the AppImage runnable on most current distributions.
|
||||
# the packages installable on current distributions. No AppImage here: its runtime (and linuxdeploy) can't run
|
||||
# under the QEMU emulation used when building amd64 on Apple silicon; build it on a real x86_64 host.
|
||||
FROM rust:1-bookworm AS build
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev libssl-dev libxdo-dev \
|
||||
@@ -13,10 +14,13 @@ WORKDIR /src
|
||||
COPY kestrove-core kestrove-core
|
||||
COPY kestrove-desktop kestrove-desktop
|
||||
WORKDIR /src/kestrove-desktop
|
||||
RUN npm ci --no-audit --no-fund && npm run tauri build -- --bundles appimage,deb \
|
||||
&& cd src-tauri && cargo build --release --bin kestrove-nmh
|
||||
RUN npm ci --no-audit --no-fund
|
||||
# Separate steps so a packaging failure keeps the compile in the layer cache.
|
||||
RUN cd src-tauri && cargo build --release --bins
|
||||
RUN npm run tauri build -- --bundles deb
|
||||
RUN npm run tauri build -- --bundles rpm
|
||||
|
||||
FROM scratch AS out
|
||||
COPY --from=build /src/kestrove-desktop/src-tauri/target/release/bundle/appimage/*.AppImage /
|
||||
COPY --from=build /src/kestrove-desktop/src-tauri/target/release/bundle/rpm/*.rpm /
|
||||
COPY --from=build /src/kestrove-desktop/src-tauri/target/release/bundle/deb/*.deb /
|
||||
COPY --from=build /src/kestrove-desktop/src-tauri/target/release/kestrove-nmh /kestrove-nmh-linux-x86_64
|
||||
|
||||
Reference in New Issue
Block a user