This document outlines the process for creating and publishing releases of Fabulor.
-
Icons: Ensure all required icon files are present in the
assets/directory:icon.icns(macOS)icon.ico(Windows)icon.png(Linux)
-
Dependencies: Install electron-builder dependencies:
npm install
-
GitHub Token: Ensure you have write access to the repository for automated releases.
Run the preparation script to check everything is ready:
npm run prepare-releaseUse npm to bump the version (automatically runs prepare-release):
# For bug fixes
npm version patch
# For new features
npm version minor
# For breaking changes
npm version majorPush the commit and tags to trigger CI/CD:
git push origin main --tags- GitHub Actions will automatically build for Windows, macOS, and Linux
- Artifacts will be attached to the GitHub release
- Check the Actions tab for build status
npm run distnpm run build:win # Windows
npm run build:mac # macOS
npm run build:linux # Linuxnpm run buildfabulor-setup-1.0.0.exe- NSIS installerfabulor-1.0.0-win.zip- Portable version
fabulor-1.0.0.dmg- DMG disk imagefabulor-1.0.0-mac.zip- ZIP archive
fabulor-1.0.0.AppImage- AppImage (portable)fabulor_1.0.0_amd64.deb- Debian package
-
Missing Icons: Build will complete but use default icons
- Solution: Add proper icon files to
assets/directory
- Solution: Add proper icon files to
-
Build Fails on Different OS:
- Windows builds require Windows or WSL
- macOS builds require macOS
- Linux builds work on any platform
-
GitHub Release Fails:
- Check GitHub token permissions
- Ensure repository settings allow GitHub Actions
- Verify tags are pushed correctly
# Enable verbose logging
DEBUG=electron-builder npm run dist
# Build without publishing
npm run dist- Triggers on pushes to main/develop branches and PRs
- Builds application for all platforms
- Uploads artifacts for testing
- Triggers on version tags (v*)
- Builds and publishes to GitHub Releases
- Creates distributable packages for all platforms
Ensure the following are configured in your GitHub repository:
- Actions Permissions: Allow read and write permissions
- Environment Variables:
GITHUB_TOKENis automatically provided - Branch Protection: Configure rules for main branch if needed
- Icons and assets are included in the final build
- Dependencies are bundled (only js-yaml in production)
- No sensitive data should be included in the repository
- All builds are signed with default Electron certificates