feat: Add comprehensive Electron build script and automation

- Create build-electron.sh script following build-android.sh patterns
- Add support for multiple build modes: dev, package, appimage, deb
- Implement comprehensive error handling with specific exit codes
- Add proper logging and step-by-step build process tracking
- Include built-in help system and verbose logging options

Build Script Features:
- Development builds that compile and launch Electron app
- Package builds for creating distributable applications
- Support for AppImage and Debian package generation
- Automatic cleanup of previous builds and artifacts
- TypeScript compilation with proper error handling
- Capacitor sync and asset generation integration

NPM Script Integration:
- Add build:electron for development builds
- Add build:electron:package for distributable packages
- Add build:electron:appimage for AppImage packages
- Add build:electron:deb for Debian packages
- Add clean:electron for build artifact cleanup

Common Utilities Enhancement:
- Extend setup_build_env() to support 'electron' build type
- Configure proper environment variables for Electron builds
- Maintain consistency with existing build infrastructure

This provides a complete, automated build solution for Electron
that matches the quality and functionality of the Android build
system, enabling reliable cross-platform desktop application builds.
This commit is contained in:
Matthew Raymer
2025-06-27 10:09:16 +00:00
parent 0c62c128a1
commit 812c91502e
3 changed files with 158 additions and 0 deletions

View File

@@ -29,7 +29,12 @@
"electron:build:appimage": "npm run build:capacitor && npx cap copy electron && cd electron && ./build-packages.sh appimage",
"electron:build:deb": "npm run build:capacitor && npx cap copy electron && cd electron && ./build-packages.sh deb",
"clean:android": "adb uninstall app.timesafari.app || true",
"clean:electron": "rm -rf electron/app/* electron/dist/* || true",
"build:android": "./scripts/build-android.sh",
"build:electron": "./scripts/build-electron.sh",
"build:electron:package": "./scripts/build-electron.sh --package",
"build:electron:appimage": "./scripts/build-electron.sh --appimage",
"build:electron:deb": "./scripts/build-electron.sh --deb",
"fastlane:ios:beta": "cd ios && fastlane beta",
"fastlane:ios:release": "cd ios && fastlane release",
"fastlane:android:beta": "cd android && fastlane beta",