feat(desktop): packaging (C2) : prepare-server, fetch-node, electron-builder
scripts/prepare-server.mjs : rebuild forcé shared+server (évite la non-idempotence du prepack), npm pack du daemon (tarball autonome), extraction, strip des devDependencies (dont @arboretum/shared inliné, non publié), npm install --omit=dev des deps runtime avec le bon prebuild node-pty (cross via npm_config_platform/arch). scripts/fetch-node.mjs : Node standalone épinglé (22.21.1) vérifié SHA256 -> build/node. electron-builder.yml : dist/ en ASAR ; build/server et build/node en extraResources (hors ASAR pour les .node) ; cibles Linux (AppImage+deb), Windows (nsis+portable), macOS (dmg/zip non signé) ; publish generic -> release Gitea. Scripts dist:linux/win/mac. Vérifié : fetch-node (Node bundlé + node:sqlite), prepare-server (structure complète), et la chaîne runtime complète (Node bundlé exécute le daemon empaqueté : handshake + session bash via node-pty OK). Le wrapping electron-builder est une étape machine.
This commit is contained in:
59
packages/desktop/electron-builder.yml
Normal file
59
packages/desktop/electron-builder.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
appId: fr.lidge.arboretum
|
||||
productName: Arboretum
|
||||
copyright: Copyright Johan Leroy
|
||||
|
||||
directories:
|
||||
output: release
|
||||
buildResources: resources
|
||||
|
||||
# Le bundle esbuild (dist/) va dans l'ASAR ; le daemon et le runtime Node restent des fichiers
|
||||
# reels sur disque (extraResources, hors ASAR) : les binaires natifs (.node de node-pty) se
|
||||
# chargent proprement, ce qu'un .asar interdirait.
|
||||
files:
|
||||
- dist/**/*
|
||||
- "!**/*.map"
|
||||
asar: true
|
||||
|
||||
extraResources:
|
||||
- from: build/server
|
||||
to: server
|
||||
- from: build/node
|
||||
to: node
|
||||
|
||||
linux:
|
||||
target: [AppImage, deb]
|
||||
category: Development
|
||||
icon: resources/icons
|
||||
artifactName: ${productName}-${version}-${arch}.${ext}
|
||||
|
||||
deb:
|
||||
# git est requis pour les operations de worktree ; claude n'est pas dans les depots (documente).
|
||||
depends: [git]
|
||||
|
||||
win:
|
||||
target:
|
||||
- target: nsis
|
||||
arch: [x64]
|
||||
- target: portable
|
||||
arch: [x64]
|
||||
icon: resources/icons/icon.ico
|
||||
artifactName: ${productName}-${version}-${arch}.${ext}
|
||||
|
||||
nsis:
|
||||
oneClick: false
|
||||
perMachine: false
|
||||
allowToChangeInstallationDirectory: true
|
||||
|
||||
mac:
|
||||
target: [dmg, zip]
|
||||
category: public.app-category.developer-tools
|
||||
icon: resources/icons/icon.icns
|
||||
# macOS best-effort : non signe (documente : clic droit -> Ouvrir, ou xattr -dr com.apple.quarantine)
|
||||
identity: null
|
||||
hardenedRuntime: false
|
||||
|
||||
# Auto-update (electron-updater, cable en C5) : provider generic pointant sur les assets de release
|
||||
# Gitea. Genere latest*.yml a cote des artefacts.
|
||||
publish:
|
||||
provider: generic
|
||||
url: https://git.lidge.fr/johanleroy/arboretum/releases/download/desktop-latest
|
||||
Reference in New Issue
Block a user