-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathelectron-builder.yml
More file actions
90 lines (90 loc) · 2.96 KB
/
electron-builder.yml
File metadata and controls
90 lines (90 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
appId: com.peterjthomson.ledger
productName: Ledger
directories:
buildResources: resources/build
# Remove unused locale files after packaging (~40MB savings)
afterPack: ./scripts/build/afterPack.js
files:
# Include only the compiled output and essential resources
- out/**/*
- resources/build/**/*
- resources/themes/**/*
- package.json
# Explicitly exclude unused icons
- '!resources/icons{,/**/*}'
# Exclude everything else explicitly
- '!**/.vscode/*'
- '!**/.cursor/*'
- '!**/.claude/*'
- '!app{,/**/*}'
- '!lib{,/**/*}'
- '!src{,/**/*}'
- '!wip{,/**/*}'
- '!dist{,/**/*}'
- '!docs{,/**/*}'
- '!tests{,/**/*}'
- '!test-results{,/**/*}'
- '!scripts{,/**/*}'
# Note: node_modules MUST be included for native modules (better-sqlite3) and external deps
- '!electron.vite.config.{js,ts,mjs,cjs}'
- '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,.prettierrc,dev-app-update.yml}'
- '!{CHANGELOG.md,README.md,AGENTS.md,CLAUDE.md,CONTRIBUTING.md,LICENSE}'
- '!{.env,.env.*,.npmrc,pnpm-lock.yaml,package-lock.json}'
- '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}'
- '!{components.json,playwright.config.ts,eslint.config.mjs}'
asarUnpack:
- resources/build/**
extraResources:
- from: resources/themes
to: themes
- from: resources/scripts
to: scripts
# Note: resources/icons/ is intentionally excluded (unused)
win:
executableName: Ledger
nsis:
artifactName: ${name}-${version}-setup.${ext}
shortcutName: ${productName}
uninstallDisplayName: ${productName}
createDesktopShortcut: always
mac:
# Code sign with Developer ID Application certificate
identity: "Peter Thomson (R4RRG93J68)"
hardenedRuntime: true
# Build for Apple Silicon (arm64), Intel (x64), or both (universal)
target:
# ZIP only - DMGs have been rejected with "Team not configured" error
# DMG can be re-enabled once Apple account issue is resolved
# - target: dmg
# arch:
# - arm64
- target: zip
arch:
- arm64 # Apple Silicon only (smaller, faster)
# - x64 # Intel only
# - universal # Both (larger file ~2x size)
category: public.app-category.developer-tools
entitlements: resources/build/entitlements.mac.plist
entitlementsInherit: resources/build/entitlements.mac.plist
extendInfo:
- NSDocumentsFolderUsageDescription: Ledger needs access to read git repositories.
- NSDownloadsFolderUsageDescription: Ledger needs access to read git repositories.
# Skip flakey in-process notarization, use dedicated CLI tool to allow for better monitoring
notarize: false
dmg:
artifactName: ${productName}-${version}-${arch}.${ext}
title: ${productName}
linux:
target:
- AppImage
- deb
maintainer: peterjthomson
category: Development
appImage:
artifactName: ${name}-${version}.${ext}
npmRebuild: false
publish:
# Skip suto publishing to GitHub and upload manually once notarization is complete.
provider: github
owner: peterjthomson
repo: ledger