Skip to content

Commit 89bb4d1

Browse files
committed
fix: skip AppImage on arm64 Linux -- linuxdeploy has no arm64 build
arm64 Linux (Chromebooks) ships .deb only. x86_64 builds both deb and AppImage. CI matrix now passes bundles per arch.
1 parent 1e3226a commit 89bb4d1

9 files changed

Lines changed: 21 additions & 9 deletions

File tree

.github/workflows/release.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,10 @@ jobs:
317317
include:
318318
- arch: arm64
319319
runner: ubuntu-24.04-arm
320+
bundles: deb
320321
- arch: x86_64
321322
runner: ubuntu-24.04
323+
bundles: deb,appimage
322324
runs-on: ${{ matrix.runner }}
323325
steps:
324326
- uses: actions/checkout@v5
@@ -383,13 +385,13 @@ jobs:
383385
echo "=== assets/manifest.json ==="
384386
cat assets/manifest.json | head -5
385387
386-
- name: Build app (deb + AppImage)
388+
- name: Build app
387389
env:
388390
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
389391
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
390392
run: |
391393
cd crates/capsem-app
392-
cargo tauri build
394+
cargo tauri build --bundles ${{ matrix.bundles }}
393395
394396
- name: Validate artifacts
395397
run: |

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.14.12] - 2026-03-29
11+
12+
### Fixed
13+
- **Skip AppImage on arm64 Linux** -- linuxdeploy has no arm64 build. arm64 Linux (Chromebooks) now builds `.deb` only. x86_64 builds both deb + AppImage.
14+
1015
## [0.14.11] - 2026-03-29
1116

1217
### Fixed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ resolver = "2"
33
members = ["crates/capsem-proto", "crates/capsem-core", "crates/capsem-app", "crates/capsem-agent", "crates/capsem-logger"]
44

55
[workspace.package]
6-
version = "0.14.11"
6+
version = "0.14.12"
77

88
# Always optimize blake3 -- its SIMD assembly is 100x faster than
99
# unoptimized Rust. Without this, debug-build hashing takes 24s for 2GB.

crates/capsem-app/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/crates/tauri-utils/schema.json",
33
"productName": "Capsem",
4-
"version": "0.14.11",
4+
"version": "0.14.12",
55
"identifier": "com.capsem.capsem",
66
"build": {
77
"beforeDevCommand": "pnpm dev",

justfile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,11 @@ cross-compile arch="": _check-assets _generate-settings
164164
cp target/release/capsem-pty-agent target/release/capsem-mcp-server target/release/capsem-net-proxy target/linux-agent/$TARGET_ARCH/ && \
165165
echo '--- Build frontend ---' && \
166166
cd frontend && CI=true pnpm install && pnpm build && cd .. && \
167-
echo '--- Build Tauri app (deb + AppImage) ---' && \
167+
echo '--- Build Tauri app ---' && \
168168
cargo install tauri-cli --locked && \
169-
cd crates/capsem-app && cargo tauri build && cd ../.. && \
169+
BUNDLES='deb,appimage' && \
170+
[ '$TARGET_ARCH' = 'arm64' ] && BUNDLES='deb' ; \
171+
cd crates/capsem-app && cargo tauri build --bundles \$BUNDLES && cd ../.. && \
170172
echo '--- Validate artifacts ---' && \
171173
dpkg-deb --info target/release/bundle/deb/*.deb && \
172174
file target/release/bundle/appimage/*.AppImage 2>/dev/null || true"

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "capsem"
3-
version = "0.14.11"
3+
version = "0.14.12"
44
requires-python = ">=3.11"
55
dependencies = [
66
"pydantic>=2.0",

site/src/content/docs/releases/0-14.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ The settings system is now fully config-driven with Pydantic as the canonical sc
5959

6060
## Patch Releases
6161

62-
### 0.14.11
62+
### 0.14.12
6363

6464
- **CI Linux build complete** -- Tauri signing keys, full updater artifact collection, multi-arch matrix (arm64 + x86_64).
6565
- **`just cross-compile`** -- build Linux app (agent + deb + AppImage) in a container from macOS. Clean build, no stale volumes.

skills/release-process/SKILL.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ Triggered by `vX.Y.Z` tag push. Sequential jobs:
5555
- **`Cargo.lock` is gitignored.** CI resolves a fresh lockfile each build. This means dependency versions can drift between builds. Acceptable for now but a reproducibility risk.
5656
- **Verify assets before Tauri build.** The `Verify assets layout` step lists assets/arm64/ and assets/current/ to catch missing files early. Tauri's build.rs resolves `../../assets/current/vmlinuz` relative to `crates/capsem-app/`.
5757
- **`pyproject.toml` version must match.** Three files must be bumped in sync: `Cargo.toml` (workspace), `crates/capsem-app/tauri.conf.json`, `pyproject.toml`. `just cut-release` handles this automatically.
58+
- **No AppImage on arm64.** linuxdeploy has no arm64 build. arm64 Linux (Chromebooks) ships `.deb` only. Use `cargo tauri build --bundles deb` on arm64, full bundles on x86_64.
59+
- **Tauri signing keys on all platforms.** `TAURI_SIGNING_PRIVATE_KEY` and `TAURI_SIGNING_PRIVATE_KEY_PASSWORD` must be passed to every `cargo tauri build` step (macOS and Linux). Missing keys cause "public key found but no private key" failure.
60+
- **Test CI with `just cross-compile` before tagging.** Builds the full Linux app in a container, matching CI. If it passes locally, CI should pass.
5861

5962
## Full-test gates
6063

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)