appId: ai.multica.desktop productName: Multica directories: buildResources: build files: - "!**/.vscode/*" - "!src/*" - "!electron.vite.config.*" - "!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}" - "!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}" protocols: - name: Multica schemes: - multica asarUnpack: - resources/** mac: entitlementsInherit: build/entitlements.mac.plist target: - dmg - zip # Hardcoded name avoids the `@multica/desktop-*` subdirectory that # `${name}` produces for scoped package names. # Naming scheme: multica-desktop---. # so the filename alone surfaces kind, version, platform, and CPU arch. artifactName: multica-desktop-${version}-mac-${arch}.${ext} # Notarize via notarytool. Requires APPLE_ID + APPLE_APP_SPECIFIC_PASSWORD # + APPLE_TEAM_ID env vars at package time. Non-mac contributors are # unaffected because `pnpm package` already requires the Developer ID # signing cert — notarization is a strict superset. notarize: true dmg: artifactName: multica-desktop-${version}-mac-${arch}.${ext} linux: target: - AppImage - deb - rpm artifactName: multica-desktop-${version}-linux-${arch}.${ext} rpm: # Disable RPM build-id symlinks. Electron apps embed the upstream Electron # binary, whose GNU build-id is identical across every app shipping the same # Electron version (Slack, VS Code, Discord, ...). Without this, our RPM # would own /usr/lib/.build-id/ paths and collide with any other # Electron RPM already installed, breaking `dnf install` on Fedora/RHEL. fpm: - "--rpm-rpmbuild-define=_build_id_links none" win: target: - nsis artifactName: multica-desktop-${version}-windows-${arch}.${ext} publish: provider: github owner: multica-ai repo: multica # Align with our CLI release flow which pre-creates a *published* GitHub # Release via `gh release create`. The electron-builder default of # `releaseType: draft` conflicts with `existingType=release` and causes # uploads of the DMG/ZIP/blockmaps/latest-mac.yml to be silently skipped, # which breaks electron-updater auto-update on installed clients. releaseType: release npmRebuild: false