Changed linux build method.
Some checks are pending
farmcontrol/farmcontrol-server/pipeline/head Build started...

This commit is contained in:
Tom Butcher 2026-02-01 22:34:27 +00:00
parent bc91c2330f
commit 3cc2cbe020
2 changed files with 38 additions and 2 deletions

38
Jenkinsfile vendored
View File

@ -44,11 +44,47 @@ def buildOnLabel(label, buildCommand) {
}
}
def buildLinuxWithBun() {
return {
node('ubuntu') {
stage("Checkout (Linux)") {
checkout scm
}
stage("Setup Bun (Linux)") {
sh '''
curl -fsSL https://bun.sh/install | bash
export PATH="$HOME/.bun/bin:$PATH"
bun --version
'''
}
stage("Install Dependencies (Linux)") {
sh '''
export PATH="$HOME/.bun/bin:$PATH"
bun install --frozen-lockfile
'''
}
stage("Build (Linux)") {
sh '''
export PATH="$HOME/.bun/bin:$PATH"
NODE_ENV=production bun run build:linux
'''
}
stage("Archive Artifacts (Linux)") {
archiveArtifacts artifacts: 'app_dist/**/*.deb, app_dist/**/*.rpm', fingerprint: true
}
}
}
}
try {
parallel(
'Windows Build': buildOnLabel('windows', 'pnpm build:electron'),
'MacOS Build': buildOnLabel('macos', 'pnpm build:electron'),
'Linux Build': buildOnLabel('ubuntu', 'pnpm build:linux')
'Linux Build': buildLinuxWithBun()
)
echo 'All parallel stages completed successfully!'

View File

@ -14,7 +14,7 @@
"build:renderer": "pnpm build:electron-renderer && shx cp src/electron/preload.js build/electron/ && shx 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": "pnpm build && electron-builder",
"build:linux": "pnpm clean && pnpm build:server && shx mkdir -p app_dist/linux && pkg . --targets node18-linux-x64 --output app_dist/linux/farmcontrol-server && fpm -f -s dir -t deb -n farmcontrol-server -p app_dist/linux/ -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 -f -s dir -t rpm -n farmcontrol-server -p app_dist/linux/ -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",
"build:linux": "bun run clean && bun run build:server && shx mkdir -p app_dist/linux && pkg . --targets node18-linux-x64 --output app_dist/linux/farmcontrol-server && fpm -f -s dir -t deb -n farmcontrol-server -p app_dist/linux/ -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 -f -s dir -t rpm -n farmcontrol-server -p app_dist/linux/ -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",