Skip to content

Commit db80f9d

Browse files
ci: remove Linux ARM64 builds from release pipeline
Drop QEMU-based cross-compilation that was slow and unreliable. Only macOS retains ARM64 as a build target.
1 parent 44e3719 commit db80f9d

6 files changed

Lines changed: 6 additions & 242 deletions

File tree

.github/workflows/release.yml

Lines changed: 1 addition & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -147,55 +147,6 @@ jobs:
147147
gh release upload "${{ github.event.release.tag_name }}" \
148148
target/x86_64-unknown-linux-gnu/release/bundle/deb/*.deb
149149
150-
build-linux-arm64:
151-
name: Build Linux (ARM64)
152-
if: >
153-
github.event_name == 'release' ||
154-
inputs.platform == 'all' || inputs.platform == 'linux' || inputs.platform == ''
155-
runs-on: blacksmith-4vcpu-ubuntu-2404
156-
timeout-minutes: 60
157-
158-
steps:
159-
- uses: actions/checkout@v6
160-
161-
- name: Install Task
162-
uses: go-task/setup-task@v1
163-
164-
165-
- name: Setup Blacksmith Builder
166-
uses: useblacksmith/setup-docker-builder@v1
167-
168-
- name: Set up QEMU
169-
uses: docker/setup-qemu-action@v3
170-
with:
171-
platforms: arm64
172-
173-
- name: Build ARM64 .deb
174-
run: |
175-
docker buildx build \
176-
--platform linux/arm64 \
177-
--file docker/Dockerfile.linux-arm64 \
178-
--build-arg LASTFM_API_KEY=${{ secrets.LASTFM_API_KEY }} \
179-
--build-arg LASTFM_API_SECRET=${{ secrets.LASTFM_API_SECRET }} \
180-
--target artifacts \
181-
--output type=local,dest=dist/linux-arm64 \
182-
.
183-
184-
- name: Upload artifacts
185-
uses: actions/upload-artifact@v7
186-
with:
187-
name: linux-arm64
188-
path: dist/linux-arm64/*.deb
189-
retention-days: 7
190-
191-
- name: Upload release assets
192-
if: github.event_name == 'release'
193-
env:
194-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
195-
run: |
196-
gh release upload "${{ github.event.release.tag_name }}" \
197-
dist/linux-arm64/*.deb
198-
199150
build-windows:
200151
name: Build Windows (x64)
201152
if: >
@@ -313,7 +264,7 @@ jobs:
313264
314265
update-readme:
315266
name: Update README download links
316-
needs: [build-macos, build-linux-amd64, build-linux-arm64, build-windows]
267+
needs: [build-macos, build-linux-amd64, build-windows]
317268
if: github.event_name == 'release'
318269
runs-on: blacksmith-4vcpu-ubuntu-2404
319270

@@ -341,7 +292,6 @@ jobs:
341292
PLATFORM_MAP = [
342293
('.dmg', 'macOS', 'Apple Silicon (ARM64)'),
343294
('amd64', 'Linux', 'x86_64 (amd64)'),
344-
('arm64', 'Linux', 'ARM64'),
345295
('.exe', 'Windows', 'x64'),
346296
]
347297

docker/Dockerfile.linux-arm64

Lines changed: 0 additions & 111 deletions
This file was deleted.

docs/builds.md

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ Build configuration, performance tuning, signing, and distribution for mt.
88
| ---------- | ------------- | -------- | -------- |
99
| macOS | ARM64 | Self-hosted `[macOS, ARM64]` | `.app`, `.dmg` |
1010
| Linux | amd64 | `ubuntu-latest` (CI) or Docker (`Dockerfile.linux-amd64`) | `.deb` |
11-
| Linux | arm64 | Docker (`Dockerfile.linux-arm64`) | `.deb` |
1211
| Windows | x64 | Self-hosted `[self-hosted, Windows, X64]` | `.exe` (NSIS) |
1312

1413
## Taskfile Commands
@@ -28,7 +27,6 @@ All `task tauri:*` commands default to nightly with parallel codegen and sccache
2827
| `task tauri:icons` | Generate app icons from `static/logo.png` |
2928
| `task tauri:build:windows` | Build Windows x64 NSIS `.exe` installer |
3029
| `task tauri:build:linux-amd64` | Build Linux amd64 `.deb` via Docker |
31-
| `task tauri:build:linux-arm64` | Build Linux arm64 `.deb` via Docker |
3230
| `task tauri:clean` | Clean all build artifacts |
3331
| `task tauri:clean:rust` | Clean only Rust build artifacts |
3432
| `task tauri:doctor` | Run Tauri environment check |
@@ -109,9 +107,6 @@ rustflags = ["-C", "link-arg=-fuse-ld=lld"]
109107
[target.x86_64-unknown-linux-gnu]
110108
rustflags = ["-C", "link-arg=-fuse-ld=mold"]
111109

112-
[target.aarch64-unknown-linux-gnu]
113-
rustflags = ["-C", "link-arg=-fuse-ld=mold"]
114-
115110
[target.x86_64-pc-windows-msvc]
116111
rustflags = ["-C", "link-arg=-fuse-ld=lld"]
117112
```
@@ -404,31 +399,23 @@ task tauri:build
404399

405400
### Docker Builds (Linux .deb)
406401

407-
Both Linux architectures can be built locally via Docker, which is useful for producing `.deb` packages from a macOS development machine.
402+
Linux amd64 packages can be built locally via Docker, which is useful for producing `.deb` packages from a macOS development machine.
408403

409404
| Architecture | Task | Dockerfile | Notes |
410405
| ------------- | ------ | ------------ | ------- |
411-
| arm64 | `task build:linux-arm64` | `docker/Dockerfile.linux-arm64` | Native on Apple Silicon |
412406
| amd64 | `task build:linux-amd64` | `docker/Dockerfile.linux-amd64` | QEMU emulation on Apple Silicon |
413407

414-
The arm64 build runs natively on Apple Silicon with no emulation overhead. The amd64 build uses `--platform linux/amd64` which triggers QEMU emulation — functional but slower.
415-
416-
Artifacts are written to `dist/linux-{arm64,amd64}/`.
408+
Artifacts are written to `dist/linux-amd64/`.
417409

418410
```bash
419411
# Build amd64 .deb
420412
task build:linux-amd64
421413

422-
# Build arm64 .deb
423-
task build:linux-arm64
424-
425414
# Copy to target machine
426415
scp dist/linux-amd64/*.deb zima:~/Downloads/
427-
scp dist/linux-arm64/*.deb rpi:~/Downloads/
428416

429417
# Debug shell (inspect build environment)
430418
task build:linux-amd64:shell
431-
task build:linux-arm64:shell
432419
```
433420

434421
### Windows (NSIS)
@@ -599,7 +586,7 @@ sudo apt install libasound2-plugins
599586

600587
## Runtime Memory Optimization
601588

602-
The app includes several runtime memory optimizations, particularly important on resource-constrained platforms like Raspberry Pi (Linux ARM64).
589+
The app includes several runtime memory optimizations, particularly important on resource-constrained Linux platforms.
603590

604591
### Frontend: Summary-Only Section Cache
605592

docs/tauri-architecture.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,8 @@ mt/
260260

261261
## Performance
262262

263-
| Metric | macOS | Linux ARM64 | Notes |
264-
|--------|-------|-------------|-------|
263+
| Metric | macOS | Linux | Notes |
264+
|--------|-------|-------|-------|
265265
| Cold start | < 500ms | < 1s | |
266266
| Track switch | < 50ms | < 50ms | |
267267
| Memory (idle) | ~115 MB | ~480 MB | WebKitGTK multi-process overhead on Linux |

taskfile.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,6 @@ tasks:
8484
cmds:
8585
- task: tauri:build:x64
8686

87-
build:linux-arm64:
88-
desc: "Build Linux ARM64 .deb via Docker (for Raspberry Pi)"
89-
cmds:
90-
- task: tauri:build:linux-arm64
91-
9287
build:linux-amd64:
9388
desc: "Build Linux amd64 .deb via Docker"
9489
cmds:

taskfiles/tauri.yml

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -268,63 +268,6 @@ tasks:
268268
preconditions:
269269
- test -d "{{.APP_PATH}}"
270270

271-
build:linux-arm64:
272-
desc: "Build Linux ARM64 .deb via Docker (for Raspberry Pi)"
273-
cmds:
274-
- |
275-
echo "Building mt for aarch64-unknown-linux-gnu via Docker..."
276-
mkdir -p dist/linux-arm64
277-
278-
docker build \
279-
--platform linux/arm64 \
280-
-f docker/Dockerfile.linux-arm64 \
281-
--build-arg LASTFM_API_KEY=${LASTFM_API_KEY:-} \
282-
--build-arg LASTFM_API_SECRET=${LASTFM_API_SECRET:-} \
283-
--target artifacts \
284-
--output type=local,dest=dist/linux-arm64 \
285-
.
286-
287-
echo ""
288-
echo "Build complete. Artifacts:"
289-
ls -lh dist/linux-arm64/
290-
sources:
291-
- "{{.TAURI_DIR}}/src/**/*.rs"
292-
- "{{.TAURI_DIR}}/Cargo.toml"
293-
- "crates/mt-core/src/**/*.rs"
294-
- "crates/mt-core/Cargo.toml"
295-
- "zig-core/src/**/*.zig"
296-
- "zig-core/build.zig"
297-
- "app/frontend/js/**/*.js"
298-
- "app/frontend/index.html"
299-
- "docker/Dockerfile.linux-arm64"
300-
generates:
301-
- "dist/linux-arm64/*.deb"
302-
303-
build:linux-arm64:shell:
304-
desc: "Open a shell in the Linux ARM64 build container (debugging)"
305-
deps: ["build:linux-arm64:image"]
306-
cmds:
307-
- |
308-
docker run --rm -it \
309-
--platform linux/arm64 \
310-
mt-builder:linux-arm64 \
311-
/bin/bash
312-
interactive: true
313-
314-
build:linux-arm64:image:
315-
internal: true
316-
desc: "Build the Docker builder image"
317-
cmds:
318-
- |
319-
docker build \
320-
--platform linux/arm64 \
321-
-f docker/Dockerfile.linux-arm64 \
322-
--target builder \
323-
-t mt-builder:linux-arm64 \
324-
.
325-
status:
326-
- docker image inspect mt-builder:linux-arm64 >/dev/null 2>&1
327-
328271
build:linux-amd64:
329272
desc: "Build Linux amd64 .deb via Docker"
330273
cmds:

0 commit comments

Comments
 (0)