Files
arboretum/packages/desktop/electron-builder.yml
Johan LEROY 82682b0a37
Some checks failed
CI / Build & test (Node 24) (push) Has been cancelled
CI / Pack & boot smoke (Node 22) (push) Has been cancelled
CI / No em/en dashes (push) Has been cancelled
CI / Build & test (Node 22) (push) Has been cancelled
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.
2026-07-17 17:59:32 +02:00

60 lines
1.5 KiB
YAML

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