Skip to content

feat: complete desktop app build for all platforms (icons, macOS multi-arch, CI, docs)#11

Merged
SynTechRev merged 1 commit into
masterfrom
copilot/resolve-repository-issues
Apr 13, 2026
Merged

feat: complete desktop app build for all platforms (icons, macOS multi-arch, CI, docs)#11
SynTechRev merged 1 commit into
masterfrom
copilot/resolve-repository-issues

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 13, 2026

The desktop app could not build on any platform: desktop/resources/ was missing entirely (electron-builder hard-fails on absent icon paths), macOS was configured to bundle both x64+arm64 from a single runner despite the PyInstaller binary being native-arch only, the NSIS artifact name used spaces (breaking glob patterns), and action-gh-release was on v1.

Icons

Added desktop/resources/ with programmatically generated, format-valid icons:

  • icon.png — 512×512 RGBA (Linux AppImage)
  • icon.ico — 16/32/48/256px multi-size (Windows NSIS)
  • icon.icns — 16/32/128/256/512px multi-size (macOS DMG)

desktop/package.json

  • Removed arch: ["x64", "arm64"] from mac target — was bundling an arm64 Python binary into the x64 DMG and vice versa
  • Added artifactName per platform for deterministic output filenames:
    • ODIA-Setup-{version}.exe, ODIA-{version}-{arch}.dmg, ODIA-{version}.AppImage

CI workflows (release-desktop.yml, desktop-build.yml)

  • Split macOS into two runners: macos-13 (Intel/x64) and macos-latest (Apple Silicon/arm64), each producing a correctly matched Python + Electron binary
  • Each runner passes --x64 or --arm64 to electron-builder explicitly
  • release-desktop.yml: upgraded to softprops/action-gh-release@v2; each job now uploads only its own artifact glob rather than the entire dist/ directory

Docs (README.md, desktop/README.md)

  • Download table updated to four explicit artifacts (Windows x64, macOS arm64, macOS x64, Linux x64) with matching direct download URLs
  • Per-arch build commands documented

…orkflows and docs

- Add desktop/resources/icon.png (512x512), icon.ico (multi-size), icon.icns (multi-size)
- Fix package.json: set artifactName per platform, remove hardcoded mac arch
- Update release-desktop.yml: split macOS into x64 (macos-13) and arm64 (macos-latest) runners, upgrade to action-gh-release@v2, use platform-specific build commands
- Update desktop-build.yml: split macOS build job into x64 and arm64
- Update README.md: accurate download table (4 platforms), correct direct download links
- Update desktop/README.md: separate macOS arm64/x64 entries, per-arch build commands

Agent-Logs-Url: https://github.com/SynTechRev/ODIA/sessions/7469ac40-b9fa-41ff-9ec2-0542dc809e3a

Co-authored-by: SynTechRev <235390103+SynTechRev@users.noreply.github.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Enables reliable cross-platform packaging and releasing of the Electron desktop app by adding the missing build resources (icons), producing deterministic artifact names, and updating CI workflows to build macOS per-architecture.

Changes:

  • Added desktop/resources/ with platform-valid icons required by electron-builder.
  • Updated desktop/package.json electron-builder config to remove macOS universal targeting and to emit deterministic per-platform artifact names.
  • Updated GitHub Actions workflows to split macOS builds into x64 and arm64 runners, pass explicit arch flags, and upload only the intended artifacts to releases.

Reviewed changes

Copilot reviewed 5 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
README.md Updates download table/links to list separate macOS arm64 vs x64 DMGs.
desktop/resources/icon.png Adds Linux icon resource required by electron-builder.
desktop/resources/icon.ico Adds Windows icon resource required by electron-builder.
desktop/resources/icon.icns Adds macOS icon resource required by electron-builder.
desktop/README.md Updates installer naming and documents per-arch macOS build commands.
desktop/package.json Sets per-platform artifactName and removes macOS multi-arch bundling from a single build.
.github/workflows/release-desktop.yml Splits macOS into x64/arm64 jobs, passes arch flags, upgrades release action, narrows uploaded globs.
.github/workflows/desktop-build.yml Aligns build matrix naming with platform, adds macOS x64 runner, and adjusts build steps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 102 to +106
- name: Build backend
working-directory: desktop
run: npm run build:backend
run: |
npm ci
npm run build:backend
@SynTechRev SynTechRev marked this pull request as ready for review April 13, 2026 05:51
@SynTechRev SynTechRev merged commit 7224d0f into master Apr 13, 2026
21 checks passed
@SynTechRev SynTechRev deleted the copilot/resolve-repository-issues branch April 13, 2026 05:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants