From f3684404215871540ea38aef5b5f23df679e0674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E9=98=BF=E6=B1=9F=28Relakkes?= =?UTF-8?q?=29?= Date: Sat, 18 Apr 2026 17:20:14 +0800 Subject: [PATCH] Keep desktop CI aligned with the build outputs we actually rely on The local desktop build path already proved that AppImage packaging needs libfuse2 and that macOS artifacts may be directories rather than plain files. This commit aligns the GitHub workflows with those realities so remote validation matches the local release path more closely. Constraint: GitHub-hosted Linux runners do not guarantee AppImage runtime deps unless we install them explicitly Rejected: Leave release workflow unchanged and trust local macOS build only | would not validate Linux packaging path at all Rejected: Upload only DMG/installer files in dev workflow | hides the macOS .app artifact users expect for local testing Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep dev and release desktop dependency lists in sync when packaging requirements change Tested: git diff --check; YAML parse of both workflow files; manual inspection of artifact collection and Linux dependency steps Not-tested: Live GitHub Actions execution on repository runners --- .github/workflows/build-desktop-dev.yml | 14 +++++++------- .github/workflows/release-desktop.yml | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-desktop-dev.yml b/.github/workflows/build-desktop-dev.yml index e81dce74..8b236919 100644 --- a/.github/workflows/build-desktop-dev.yml +++ b/.github/workflows/build-desktop-dev.yml @@ -167,14 +167,14 @@ jobs: echo "Searching for artifacts in: $SEARCH_DIR" if [ -d "$SEARCH_DIR" ]; then - find "$SEARCH_DIR" -type f \( \ - -name "*.dmg" -o -name "*.app" -o \ - -name "*.exe" -o -name "*.msi" -o \ - -name "*.deb" -o -name "*.AppImage" -o \ - -name "*.zip" \ - \) | while read -r f; do + find "$SEARCH_DIR" \ + \( -type f \( \ + -name "*.dmg" -o -name "*.exe" -o -name "*.msi" -o \ + -name "*.deb" -o -name "*.AppImage" -o -name "*.zip" \ + \) \) -o \ + \( -type d -name "*.app" \) | while read -r f; do echo " Copying: $(basename "$f")" - cp "$f" "$STAGING/" + cp -R "$f" "$STAGING/" done fi diff --git a/.github/workflows/release-desktop.yml b/.github/workflows/release-desktop.yml index c0be2a4f..351fb7c1 100644 --- a/.github/workflows/release-desktop.yml +++ b/.github/workflows/release-desktop.yml @@ -80,7 +80,8 @@ jobs: libwebkit2gtk-4.1-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ - patchelf + patchelf \ + libfuse2 # ── Bun ────────────────────────────────────────────────── - name: Setup Bun