This repository was archived by the owner on Aug 16, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathelectron-builder.yml
More file actions
194 lines (178 loc) · 6.82 KB
/
Copy pathelectron-builder.yml
File metadata and controls
194 lines (178 loc) · 6.82 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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
appId: io.github.dnviti.code-agents-webcli
productName: Code Agents Web CLI
copyright: Copyright © Daniele Viti
# Desktop clients accept update manifests only from this immutable project
# location. The Electron main process deliberately never accepts a feed URL
# from the renderer or user preferences.
publish:
provider: github
owner: dnviti
repo: code-agents-webcli
releaseType: release
directories:
output: release
buildResources: assets
extraMetadata:
main: desktop/main.js
files:
- desktop/**/*
- dist/**/*
# BrowserWindow needs a raster icon at runtime on Linux. Build resources are
# consumed by the packager but are not otherwise copied into app.asar.
- src/public/icons/icon-512.png
- package.json
- README.md
- LICENSE
asar: true
asarUnpack:
# @lydell/node-pty is N-API compatible with Electron, but dlopen cannot load
# a native library from inside an asar archive.
- node_modules/@lydell/**/prebuilds/**/*.node
# Express streams the browser shell at runtime. Keep those files beside the
# ASAR so AppImage's temporary SquashFS mount never has to stream a nested
# archive entry (which Electron reports as a false ENOENT on some hosts).
- dist/public/**/*
# Signed Linux jobs materialize the protected Flatpak repository public key in
# this existing build directory. The filtered resource is absent from unsigned
# and ordinary native builds.
extraResources:
- from: build
to: .
filter:
- flatpak-update-public-key.asc
npmRebuild: false
# Signing is optional by default. Release CI enables it per platform only when
# that platform's complete protected identity is configured.
forceCodeSigning: false
artifactName: Code-Agents-Web-CLI-${version}-${os}-${arch}.${ext}
linux:
icon: icon.svg
category: Development
executableName: code-agents-webcli
syncDesktopName: true
synopsis: Run coding agents and real terminals locally
target:
- AppImage
- flatpak
- deb
- rpm
# Debian / Ubuntu packaging (fpm). `.deb` is the conventional apt install
# path and `.rpm` the Red Hat / Fedora path; both keep the same `linux-x64`
# public asset contract as the AppImage and Flatpak so users can reason about
# the set they download. The fpm tool requires `rpmbuild` for the rpm target.
deb:
# The package.json author has email-less `Daniele Viti`, which fpm refuses,
# so the maintainer is spelled out with the real project address.
maintainer: Daniele Viti <dnviti@gmail.com>
synopsis: Run coding agents and real terminals locally
# Match the repo's established public `linux-x64` asset naming (see AppImage
# and flatpak below) rather than fpm's `amd64` deb convention.
artifactName: Code-Agents-Web-CLI-${version}-linux-x64.${ext}
# Electron's Linux runtime links GTK3, NSS, the X11 test/scrn-saver
# libraries, GBM and ALSA directly. The electron-builder defaults omit
# libgbm1 and libasound2, so a clean Debian/Ubuntu install would start with
# missing shared objects; spell out the full set so apt resolves everything.
# Database libraries that Debian/Ubuntu renamed for the time_t 64 transition
# (libgtk-3-0 -> libgtk-3-0t64, libatspi2.0-0 -> libatspi2.0-0t64,
# libasound2 -> libasound2t64 on Ubuntu 24.04+) are listed as alternatives.
# Plain `libasound2` alone is dangerous on 24.04: apt satisfies it with the
# `liboss4-salsa-asound2` compatibility shim, which lacks the ALSA symbols
# Electron links (`snd_device_name_get_hint`), crashing at startup.
depends:
- libgtk-3-0t64 | libgtk-3-0
- libnotify4
- libnss3
- libxss1
- libxtst6
- xdg-utils
- libatspi2.0-0t64 | libatspi2.0-0
- libuuid1
- libsecret-1-0
- libgbm1
- libasound2t64 | libasound2
- libxkbcommon0
rpm:
maintainer: Daniele Viti <dnviti@gmail.com>
synopsis: Run coding agents and real terminals locally
artifactName: Code-Agents-Web-CLI-${version}-linux-x64.${ext}
# Same rationale as the deb depends above, with RPM package names. The
# defaults use `(libXtst or libXtst6)`/`(libuuid or libuuid1)` rich
# alternatives that only half-exist on some distros and omit GBM/ALSA/XKB.
depends:
- gtk3
- libnotify
- nss
- libXScrnSaver
- libXtst
- xdg-utils
- at-spi2-core
- libuuid
- libsecret
- mesa-libgbm
- alsa-lib
- libxkbcommon
appImage:
category: Development
# electron-builder renders the generic Linux arch macro as `x86_64` for
# AppImage, while this project's established public asset contract is `x64`.
artifactName: Code-Agents-Web-CLI-${version}-linux-x64.${ext}
# electron-builder otherwise writes `--no-sandbox` into the desktop entry.
# The app refuses unsandboxed packaged starts, so keep normal launcher starts
# on Chromium's OS sandbox instead of silently weakening the renderer.
executableArgs: []
flatpak:
runtime: org.freedesktop.Platform
sdk: org.freedesktop.Sdk
runtimeVersion: "24.08"
# electron-builder otherwise defaults the Electron base to 20.08, which is
# incompatible with the selected Freedesktop 24.08 runtime and SDK.
baseVersion: "24.08"
branch: stable
# As with AppImage above, electron-builder renders the generic Linux arch
# macro as `x86_64`, while this project's public asset contract is `x64`.
# Signed runs hid the mismatch because the repository step rewrites the
# bundle to the contract name, but that step is skipped when no Flatpak
# signing key is configured, and the installed smoke test then cannot find
# `Code-Agents-Web-CLI-*-linux-x64.flatpak`. Emit the contract name directly.
artifactName: Code-Agents-Web-CLI-${version}-linux-x64.${ext}
finishArgs:
- --share=ipc
- --share=network
- --socket=x11
- --socket=wayland
- --device=dri
- --filesystem=home
- --talk-name=org.freedesktop.Notifications
# Terminals, coding agents, and their installers deliberately execute in
# the user's host environment rather than the development-hostile runtime.
- --talk-name=org.freedesktop.Flatpak
# The updater separately uses the narrow Flatpak portal interface.
- --talk-name=org.freedesktop.portal.Flatpak
win:
icon: icon.svg
executableName: code-agents-webcli
target:
- nsis
nsis:
oneClick: false
perMachine: false
allowToChangeInstallationDirectory: true
createDesktopShortcut: true
createStartMenuShortcut: true
shortcutName: Code Agents Web CLI
mac:
icon: icon.svg
category: public.app-category.developer-tools
hardenedRuntime: true
entitlements: build/entitlements.mac.plist
entitlementsInherit: build/entitlements.mac.plist
gatekeeperAssess: false
target:
- dmg
# electron-updater uses a signed ZIP, while people continue to receive a
# DMG. Release CI bakes an architecture-specific channel into each build
# so two native jobs cannot publish a conflicting latest-mac.yml.
- zip
afterSign: scripts/notarize.js
dmg:
title: Code Agents Web CLI ${version}