- apps/android/: Capacitor project wrapping the mobile web UI
- www/index.html: full DWM remote UI with first-run server IP setup screen
- capacitor.config.json: app ID com.dibby.wemo, allowMixedContent enabled
- .github/workflows/build-android.yml: builds debug APK on Ubuntu via Gradle
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
app-builder-bin v5 alpha ships the binary inside the npm package itself
(no GitHub release assets). Copy the npm-bundled binary to /usr/local/bin
using the path from require('app-builder-bin').appBuilderPath so
USE_SYSTEM_APP_BUILDER=true can find it in PATH.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The binary disappears from node_modules between the verify step and the
electron-builder step (likely re-installed/cleared during dep scan).
Install it to /usr/local/bin/ and use USE_SYSTEM_APP_BUILDER=true so
electron-builder looks it up by name in PATH — bypassing all path
resolution and caching issues.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
app-builder-bin/index.js supports CUSTOM_APP_BUILDER_PATH env var which
overrides the default binary resolution. Set this explicitly on both
Linux build steps to ensure electron-builder finds the binary regardless
of working directory or npm workspace hoisting quirks.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The postinstall script for app-builder-bin does not download the binary
automatically in the GitHub Actions environment. Add an explicit step
to download and chmod the binary before running electron-builder.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
app-builder runs npm install --production inside the app dir during
packaging. node-windows has a Windows-only postinstall script that
fails on Linux with ENOENT. Moving it to optionalDependencies makes
npm treat install failures as non-fatal on non-Windows platforms.
Also simplify build-linux.yml — removes unnecessary app-builder binary
verification steps that were masking the actual root cause.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The app-builder binary (electron-builder's internal tool) fails to spawn
on plain ubuntu-latest runners due to missing shared libraries.
The official electronuserland/builder Docker image has all required
dependencies pre-installed and is the recommended build environment.
This eliminates the ENOENT spawn error entirely.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- npm install at root with --ignore-scripts --legacy-peer-deps
(prevents node-windows and other Windows postinstall scripts failing)
- CSC_IDENTITY_AUTO_DISCOVERY=false disables electron-builder cert search
- Split vite build, standalone bundle, and electron-builder into separate steps
so failures are easier to identify in CI logs
- Added libarchive-tools for AppImage generation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Run npm install --ignore-scripts inside apps/desktop only
(avoids node-windows postinstall breaking on Ubuntu runner)
- Run electron-rebuild explicitly after install
- Run build commands directly in apps/desktop working directory
- arm64 reuses vite output from x64 build step
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>