fix(ci): add APPIMAGE_EXTRACT_AND_RUN to build-linux-amd64 #37
No reviewers
Labels
No Label
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: sarman/tftsr-devops_investigation#37
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/appimage-extract-and-run"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
linuxdeployis itself an AppImage. Tauri downloads it to bundle the.AppImageartifact, then tries to execute it directly inside the Docker container. Docker containers have no FUSE support, so the AppImage cannot mount itself — causingfailed to run linuxdeploy.Fix
Set
APPIMAGE_EXTRACT_AND_RUN=1on the Build step ofbuild-linux-amd64. This env var tells linuxdeploy (and any AppImage tool) to extract its squashfs payload to a temp directory and run from there instead of mounting via FUSE.build-linux-arm64already had this set — it was simply missing from the amd64 job.Test plan
auto-tag.ymlafter merge —build-linux-amd64should produce.deb,.rpm, and.AppImageartifacts🤖 Automated PR Review:\n\n### 1) Summary
This PR adds the environment variable
APPIMAGE_EXTRACT_AND_RUN=1to the Linux AMD64 build step in.gitea/workflows/auto-tag.yml. The intent appears to be enabling AppImage runtime extraction mode (used by tools likeappimagetoolorAppImageLauncher) during the Tauri build process—likely to avoid sandboxing issues or ensure compatibility when the resulting AppImage is executed in certain CI or testing environments.However, the change is likely incorrect or at least incomplete, as
APPIMAGE_EXTRACT_AND_RUNis not a standard Tauri or Electron build-time environment variable, and its placement in the workflow is ambiguous in terms of when and for which process it should take effect.2) Bugs / Errors
❌ Misplaced or ineffective environment variable
APPIMAGE_EXTRACT_AND_RUNis not a Tauri build flag. According to AppImage documentation,APPIMAGE_EXTRACT_AND_RUNis an environment variable that must be set in the runtime environment of the AppImage itself (e.g., by the user or system launching the AppImage), not during the build process.tauri builddoes not use or propagate this variable into the AppImage metadata or wrapper script.⚠️ Potential confusion with
APPIMAGE_EXTRACT_AND_RUNvsAPPIMAGE_EXTRACT_AND_RUN=1APPIMAGE_EXTRACT_AND_RUN=1(as used), but its purpose is to force extraction to a temporary directory and run from there — useful for read-only filesystems or sandboxed environments (e.g., Flatpak, some CI runners).🛠️ Likely intended alternative:
TAURI_LINUX_APPIMAGE_EXTRACT_AND_RUN?--extract-and-runor--appimage-extract-and-rundepending on version.)🔍 Check Tauri version & docs:
--extract-and-runfortauri build.appimagebundle config (see Tauri v2 docs).➡️ Conclusion: The PR likely should have added
--extract-and-runto thenpx tauri buildcommand, not set an env var.3) Security Issues
🔒 No direct security vulnerabilities
APPIMAGE_EXTRACT_AND_RUN=1in CI is low-risk (it’s ignored), but:APPIMAGE_EXTRACT_AND_RUNcan increase attack surface (e.g., by extracting to world-writable/tmp), but this is irrelevant here since it’s set only during build.⚠️ Indirect risk: Misconfiguration leads to broken AppImages
--extract-and-runin the actual bundle config).4) Best Practices
✅ Correct placement & scope
env:is defined at the step level, which means it applies to therun:command (npm ci,npx tauri build).APPIMAGE_EXTRACT_AND_RUNis not used bynpm,node, ortauri build, it’s wasted.✅ Prefer declarative config over env vars
tauri.conf.json(v1) ortauri.conf.json5(v2), not via CI env vars.✅ Use explicit CLI flags if needed
--to pass args to Tauri, not npm.)✅ Document the intent
/tmp” or “Workaround for AppImage sandboxing in GitHub/Gitea Actions”).✅ Suggested Fix
Replace the
env:block with the correct Tauri CLI flag and add a clarifying comment:Alternatively (and more robustly), configure it in
src-tauri/tauri.conf.json:Then keep the CI step simple:
Final Recommendation
Reject this PR as-is.
extract-and-run: true), or-- --extract-and-run) — with a comment explaining why it’s needed.Let me know if you'd like help verifying your Tauri version or updating the config!\n\n---\nthis is an automated review from Ollama