Merge branch 'wip-build'

Aggiunge infrastruttura Docker per build riproducibile (Linux e Windows)
This commit is contained in:
2026-03-16 11:44:33 +01:00
6 changed files with 75 additions and 2 deletions

12
contrib/linux/Dockerfile Normal file
View File

@@ -0,0 +1,12 @@
FROM node:20-bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
libudev-dev \
libusb-1.0-0-dev \
fuse \
rpm \
dpkg-dev \
python3 \
make \
g++ \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /project

25
contrib/linux/build.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
IMAGE_NAME="cadroute-builder-linux"
echo "[cadroute] Building Docker image..."
docker build -t "$IMAGE_NAME" "$SCRIPT_DIR"
echo "[cadroute] Running Linux build..."
docker run --rm \
--device /dev/fuse \
--cap-add SYS_ADMIN \
-v "$PROJECT_ROOT":/project \
-w /project \
-v cadroute-electron-cache:/root/.cache/electron \
-v cadroute-electronbuilder-cache:/root/.cache/electron-builder \
-v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro \
-e SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt \
-e NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crt \
"$IMAGE_NAME" \
bash -c "npm ci && npm run build -- --linux --x64"
echo "[cadroute] Artefatti in: $PROJECT_ROOT/dist"

View File

@@ -0,0 +1,2 @@
FROM electronuserland/builder:wine-mono
WORKDIR /project

20
contrib/windows/build.sh Executable file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
IMAGE_NAME="cadroute-builder-windows"
echo "[cadroute] Building Docker image..."
docker build -t "$IMAGE_NAME" "$SCRIPT_DIR"
echo "[cadroute] Running Windows build..."
docker run --rm \
-v "$PROJECT_ROOT":/project \
-w /project \
-v cadroute-electron-cache:/root/.cache/electron \
-v cadroute-electronbuilder-cache:/root/.cache/electron-builder \
"$IMAGE_NAME" \
bash -c "npm ci && npm run build -- --win --x64"
echo "[cadroute] Artefatti in: $PROJECT_ROOT/dist"

View File

@@ -68,6 +68,7 @@ function createWindow() {
const win = new BrowserWindow({
width: 900,
height: 640,
icon: path.join(__dirname, 'build', 'icon.png'),
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
contextIsolation: true,

View File

@@ -14,16 +14,29 @@
"build": {
"appId": "com.cadroute",
"productName": "CadRoute",
"files": [
"main.js",
"preload.js",
"renderer/**/*",
"services/**/*",
"build/icon.png"
],
"win": {
"target": "nsis"
"target": "nsis",
"icon": "build/icon.ico"
},
"linux": {
"target": ["AppImage", "deb"],
"icon": "build/icon.png",
"category": "Utility"
}
},
"dependencies": {
"electron": "^40.7.0",
"fs-extra": "^11.3.4",
"unzipper": "^0.12.3"
},
"devDependencies": {
"electron": "^40.7.0",
"electron-builder": "^26.8.1"
}
}