Updated Jenkinsfile to build Linux version using 'yarn build:linux'. Refactored package.json to separate server and renderer build processes, and added new build:linux script. Cleaned up after-install.sh and after-remove.sh scripts by removing service file handling.
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit

This commit is contained in:
Tom Butcher 2025-12-28 23:23:17 +00:00
parent d98140491f
commit 6539f6e2ff
4 changed files with 7 additions and 42 deletions

2
Jenkinsfile vendored
View File

@ -48,7 +48,7 @@ try {
parallel(
'Windows Build': buildOnLabel('windows', 'yarn build:electron'),
'MacOS Build': buildOnLabel('macos', 'yarn build:electron'),
'Linux Build': buildOnLabel('ubuntu', 'yarn build:electron')
'Linux Build': buildOnLabel('ubuntu', 'yarn build:linux')
)
echo 'All parallel stages completed successfully!'

View File

@ -8,9 +8,12 @@
"start": "node build/index.js",
"dev": "cross-env NODE_ENV=development nodemon src/index.js",
"dev:electron": "concurrently \"cross-env NODE_ENV=development vite src/electron --port 5287 --no-open\" \"cross-env NODE_ENV=development electron src/index.js\"",
"build": "yarn clean && mkdir build && cp -r src/* build/ && cp package.json config.json build/ && yarn build:electron-renderer && cp src/electron/preload.js build/electron/ && rm -rf build/electron/App.jsx build/electron/main.jsx build/electron/App.css build/electron/index.css build/electron/FarmControlLogo.jsx build/electron/vite.config.js build/electron/public build/electron/build",
"build": "yarn clean && yarn build:server && yarn build:renderer",
"build:server": "mkdir -p build && cp -r src/* build/ && cp package.json config.json build/",
"build:renderer": "yarn build:electron-renderer && cp src/electron/preload.js build/electron/ && rm -rf build/electron/App.jsx build/electron/main.jsx build/electron/App.css build/electron/index.css build/electron/FarmControlLogo.jsx build/electron/vite.config.js build/electron/public build/electron/build",
"build:electron-renderer": "vite build src/electron --outDir build/electron",
"build:electron": "yarn build && electron-builder",
"build:linux": "yarn build:server && mkdir -p app_dist/linux && pkg . --targets node23-linux-x64 --output app_dist/linux/farmcontrol-server && fpm -s dir -t deb -n farmcontrol-server -v $(node -p \"require('./package.json').version\") --after-install packaging/linux/after-install.sh --after-remove packaging/linux/after-remove.sh app_dist/linux/farmcontrol-server=/usr/bin/farmcontrol-server packaging/linux/farmcontrol-server.service=/lib/systemd/system/farmcontrol-server.service && fpm -s dir -t rpm -n farmcontrol-server -v $(node -p \"require('./package.json').version\") --after-install packaging/linux/after-install.sh --after-remove packaging/linux/after-remove.sh app_dist/linux/farmcontrol-server=/usr/bin/farmcontrol-server packaging/linux/farmcontrol-server.service=/lib/systemd/system/farmcontrol-server.service",
"clean": "rimraf build"
},
"author": "Tom Butcher",
@ -47,6 +50,7 @@
"electron-builder": "^26.0.12",
"jest": "^30.2.0",
"nodemon": "^3.1.11",
"pkg": "^5.8.1",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"rimraf": "^6.1.2",
@ -72,31 +76,6 @@
},
"win": {
"target": "nsis"
},
"linux": {
"target": [
"AppImage",
"deb",
"rpm"
],
"category": "Utility",
"maintainer": "Tom Butcher <tom@tombutcher.work>",
"executableName": "farmcontrol-server"
},
"deb": {
"priority": "optional",
"afterInstall": "packaging/linux/after-install.sh",
"afterRemove": "packaging/linux/after-remove.sh"
},
"rpm": {
"afterInstall": "packaging/linux/after-install.sh",
"afterRemove": "packaging/linux/after-remove.sh"
},
"extraResources": [
{
"from": "packaging/linux/farmcontrol-server.service",
"to": "farmcontrol-server.service"
}
]
}
}
}

View File

@ -1,16 +1,5 @@
#!/bin/bash
# Copy systemd service file
# The installation directory is usually /opt/Farm Control Server
# but we can try to find it if it's different.
APP_DIR="/opt/Farm Control Server"
if [ ! -d "$APP_DIR" ]; then
# Fallback to slugified name
APP_DIR="/opt/farmcontrol-server"
fi
cp "$APP_DIR/resources/farmcontrol-server.service" /etc/systemd/system/farmcontrol-server.service
# Reload systemd to recognize the new service
systemctl daemon-reload

View File

@ -6,9 +6,6 @@ systemctl stop farmcontrol-server.service
# Disable the service
systemctl disable farmcontrol-server.service
# Remove the systemd service file
rm -f /etc/systemd/system/farmcontrol-server.service
# Reload systemd
systemctl daemon-reload