diff --git a/.gitea/workflows/electron-linux-amd64.yml b/.gitea/workflows/electron-linux-amd64.yml index c49d0ea..7dfbf9c 100644 --- a/.gitea/workflows/electron-linux-amd64.yml +++ b/.gitea/workflows/electron-linux-amd64.yml @@ -36,15 +36,23 @@ jobs: set -eu npm run build:linux:amd64 - - name: Collect run-specific artifact + - name: Collect run-specific artifact (+ no-fuse launcher) run: | set -eu rm -rf artifacts mkdir -p artifacts appimage=$(find dist -maxdepth 1 -type f -name '*.AppImage' | head -n 1 || true) [ -n "$appimage" ] || { echo 'AppImage missing'; exit 1; } - cp "$appimage" "artifacts/electron_tray_demo-linux-amd64-run${{ github.run_number }}.AppImage" - chmod +x "artifacts/electron_tray_demo-linux-amd64-run${{ github.run_number }}.AppImage" + out="artifacts/electron_tray_demo-linux-amd64-run${{ github.run_number }}.AppImage" + cp "$appimage" "$out" + chmod +x "$out" + cat > "artifacts/run-electron_tray_demo-linux-amd64-run${{ github.run_number }}-no-fuse.sh" <<'SH' + #!/usr/bin/env sh + set -eu + cd "$(dirname "$0")" + APPIMAGE_EXTRACT_AND_RUN=1 ./electron_tray_demo-linux-amd64-run${{ github.run_number }}.AppImage + SH + chmod +x "artifacts/run-electron_tray_demo-linux-amd64-run${{ github.run_number }}-no-fuse.sh" - name: Upload artifacts uses: actions/upload-artifact@v3 diff --git a/.gitea/workflows/electron-linux-arm64.yml b/.gitea/workflows/electron-linux-arm64.yml index c870d3a..d119f7d 100644 --- a/.gitea/workflows/electron-linux-arm64.yml +++ b/.gitea/workflows/electron-linux-arm64.yml @@ -36,15 +36,23 @@ jobs: set -eu npm run build:linux:arm64 - - name: Collect run-specific artifact + - name: Collect run-specific artifact (+ no-fuse launcher) run: | set -eu rm -rf artifacts mkdir -p artifacts appimage=$(find dist -maxdepth 1 -type f -name '*.AppImage' | head -n 1 || true) [ -n "$appimage" ] || { echo 'AppImage missing'; exit 1; } - cp "$appimage" "artifacts/electron_tray_demo-linux-arm64-run${{ github.run_number }}.AppImage" - chmod +x "artifacts/electron_tray_demo-linux-arm64-run${{ github.run_number }}.AppImage" + out="artifacts/electron_tray_demo-linux-arm64-run${{ github.run_number }}.AppImage" + cp "$appimage" "$out" + chmod +x "$out" + cat > "artifacts/run-electron_tray_demo-linux-arm64-run${{ github.run_number }}-no-fuse.sh" <<'SH' + #!/usr/bin/env sh + set -eu + cd "$(dirname "$0")" + APPIMAGE_EXTRACT_AND_RUN=1 ./electron_tray_demo-linux-arm64-run${{ github.run_number }}.AppImage + SH + chmod +x "artifacts/run-electron_tray_demo-linux-arm64-run${{ github.run_number }}-no-fuse.sh" - name: Upload artifacts uses: actions/upload-artifact@v3 diff --git a/README.md b/README.md index b1cfa44..e18160a 100644 --- a/README.md +++ b/README.md @@ -26,3 +26,27 @@ Artifacts are produced via CI workflows: - `electron-linux-amd64` - `electron-linux-arm64` + +## Running on Ubuntu 24.04+ without FUSE2 + +Some fresh Ubuntu installs do not include `libfuse.so.2`, so direct AppImage execution may fail. + +Use one of these options: + +```bash +# preferred package on Ubuntu 24.04+ +sudo apt-get update && sudo apt-get install -y libfuse2t64 + +# then run AppImage normally +./electron_tray_demo-linux--run.AppImage +``` + +Or run without installing FUSE: + +```bash +APPIMAGE_EXTRACT_AND_RUN=1 ./electron_tray_demo-linux--run.AppImage +``` + +CI artifacts also include a convenience launcher: + +- `run-electron_tray_demo-linux--run-no-fuse.sh`