-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathelectron-builder.yml
More file actions
101 lines (95 loc) · 3.88 KB
/
Copy pathelectron-builder.yml
File metadata and controls
101 lines (95 loc) · 3.88 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
91
92
93
94
95
96
97
98
99
100
101
appId: software.gitgrove.app
productName: GitGrove
copyright: Copyright © 2026 GitGrove
# build/icon.png (1024×1024) is generated by `npm run make:icon` from the source
# src/renderer/src/assets/icon.svg; electron-builder derives .icns/.ico from it.
directories:
output: release
buildResources: build
files:
- out/**/*
- package.json
asarUnpack:
- '**/*.node'
# The askpass shim is executed by a relaunched plain-Node process (see
# src/main/git/askpass.ts), which can't read inside the asar — ship the real
# file in app.asar.unpacked. It bundles self-contained, so this one file is
# enough (no shared chunks to unpack alongside it).
- out/main/askpass.js
# Ship the aggregated third-party license/NOTICE bundle alongside the app so we
# honour the redistribution terms of bundled dependencies (the Apache-2.0
# @pierre/trees and @pierre/diffs require their LICENSE and NOTICE to travel with
# any distribution). Generated by `npm run licenses`, which the dist/release
# scripts run before electron-builder. Lands in the app's resources directory
# (e.g. Contents/Resources/THIRD-PARTY-LICENSES.txt on macOS).
extraResources:
- from: build/THIRD-PARTY-LICENSES.txt
to: THIRD-PARTY-LICENSES.txt
# Auto-update feed. `dist:*` builds the artifacts; `release` (see package.json)
# additionally uploads them here. Requires GH_TOKEN in the environment to publish.
publish:
provider: github
owner: danipen
repo: gitgrove
# Human-readable, platform-labelled asset names (set per platform so each file
# announces its OS in the GitHub Release, e.g. GitGrove-1.0.0-macOS-universal.dmg).
# The latest*.yml update manifests electron-updater reads are regenerated to
# match these names, so renaming here is safe for auto-update.
mac:
category: public.app-category.developer-tools
icon: build/icon.png
hardenedRuntime: true
gatekeeperAssess: false
artifactName: ${productName}-${version}-macOS-${arch}.${ext}
# Ship a separate dmg/zip per architecture instead of one universal binary:
# only the native slices (Electron, V8, *.node) differ between arches, so two
# per-arch installers (~110 MB each) roughly halve each user's download versus
# the ~200 MB universal build. electron-builder writes a single latest-mac.yml
# listing both arches' zips (the arch suffix is Linux-only), and electron-updater's
# MacUpdater filters that list at runtime by the "arm64" token in the filename,
# so auto-update keeps working as long as both arches build in one invocation.
target:
- target: dmg
arch: [x64, arm64]
- target: zip # zip target is required by electron-updater on macOS
arch: [x64, arm64]
dmg:
contents:
- x: 130
y: 220
- x: 410
y: 220
type: link
path: /Applications
win:
icon: build/icon.png
artifactName: ${productName}-${version}-Windows-${arch}.${ext}
target:
- target: nsis
arch: [x64, arm64]
nsis:
oneClick: false
perMachine: false
allowToChangeInstallationDirectory: true
createDesktopShortcut: true
createStartMenuShortcut: true
# Explorer folder context menu ("Open in GitGrove" → `--repo "<folder>"`),
# registered per-user at install and removed at uninstall.
include: build/installer.nsh
linux:
icon: build/icon.png
category: Development
artifactName: ${productName}-${version}-Linux-${arch}.${ext}
# Launcher right-click → "New Window" (GNOME/KDE read [Desktop Action]s from
# the .desktop file — the platform has no runtime API, so unlike the macOS
# dock menu / Windows Jump List this stays static: no recents list here).
# `AppRun --no-sandbox` mirrors the main Exec electron-builder writes for
# AppImage; integrators (AppImageLauncher/appimaged) rewrite it to the
# AppImage's real path. `--new-window` is routed by the single-instance lock.
desktop:
desktopActions:
NewWindow:
Name: New Window
Exec: AppRun --no-sandbox --new-window
target:
- AppImage