Replace APPIMAGE_EXTRACT_AND_RUN with pre-extracted linuxdeploy wrapper
Docker CI containers lack FUSE kernel module, and the env var approach was unreliable when Tauri spawns linuxdeploy as a subprocess. Instead: download linuxdeploy-x86_64.AppImage, extract its squashfs content using squashfs-tools (no FUSE needed), then place a shell wrapper at ~/.cache/tauri/linuxdeploy-x86_64.AppImage so Tauri uses the extracted binary directly without AppImage runtime. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -135,7 +135,7 @@ jobs:
|
|||||||
librsvg2-dev \
|
librsvg2-dev \
|
||||||
patchelf \
|
patchelf \
|
||||||
xdg-utils \
|
xdg-utils \
|
||||||
libfuse2
|
squashfs-tools
|
||||||
|
|
||||||
- uses: dtolnay/rust-toolchain@stable
|
- uses: dtolnay/rust-toolchain@stable
|
||||||
|
|
||||||
@@ -152,18 +152,30 @@ jobs:
|
|||||||
- name: Install Tauri deps
|
- name: Install Tauri deps
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: Stage AppRun for AppImage bundler
|
- name: Stage AppRun and linuxdeploy for AppImage bundler
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ~/.cache/tauri
|
mkdir -p ~/.cache/tauri
|
||||||
cp tools/AppRun-x86_64 ~/.cache/tauri/AppRun-x86_64
|
cp tools/AppRun-x86_64 ~/.cache/tauri/AppRun-x86_64
|
||||||
chmod +x ~/.cache/tauri/AppRun-x86_64
|
chmod +x ~/.cache/tauri/AppRun-x86_64
|
||||||
|
# Pre-extract linuxdeploy AppImage so it runs without FUSE in Docker
|
||||||
|
wget -q \
|
||||||
|
"https://github.com/tauri-apps/binary-releases/releases/download/linuxdeploy/linuxdeploy-x86_64.AppImage" \
|
||||||
|
-O /tmp/linuxdeploy.AppImage
|
||||||
|
OFFSET=$(python3 -c "
|
||||||
|
d=open('/tmp/linuxdeploy.AppImage','rb').read()
|
||||||
|
o=d.find(b'hsqs')
|
||||||
|
print(o if o!=-1 else d.find(b'sqsh'))
|
||||||
|
")
|
||||||
|
unsquashfs -d /tmp/linuxdeploy-root -offset "$OFFSET" /tmp/linuxdeploy.AppImage
|
||||||
|
printf '#!/bin/sh\nexec /tmp/linuxdeploy-root/AppRun "$@"\n' \
|
||||||
|
> ~/.cache/tauri/linuxdeploy-x86_64.AppImage
|
||||||
|
chmod +x ~/.cache/tauri/linuxdeploy-x86_64.AppImage
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
env:
|
env:
|
||||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
||||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ''
|
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ''
|
||||||
NODE_OPTIONS: '--max_old_space_size=4096'
|
NODE_OPTIONS: '--max_old_space_size=4096'
|
||||||
APPIMAGE_EXTRACT_AND_RUN: '1'
|
|
||||||
run: npm run tauri -- build --bundles appimage,deb
|
run: npm run tauri -- build --bundles appimage,deb
|
||||||
|
|
||||||
- name: Upload to release
|
- name: Upload to release
|
||||||
|
|||||||
Reference in New Issue
Block a user