Fixed build config.
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
Some checks failed
farmcontrol/farmcontrol-server/pipeline/head There was a failure building this commit
This commit is contained in:
parent
afe42dafa6
commit
b57d269f9b
89
Jenkinsfile
vendored
89
Jenkinsfile
vendored
@ -1,3 +1,38 @@
|
||||
def buildLinux() {
|
||||
node('ubuntu') {
|
||||
try {
|
||||
stage('Checkout (Ubuntu)') {
|
||||
checkout scm
|
||||
}
|
||||
|
||||
stage('Setup Node.js (Ubuntu)') {
|
||||
nodejs(nodeJSInstallationName: 'Node23') {
|
||||
sh 'node -v'
|
||||
sh 'pnpm -v'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Install Dependencies (Ubuntu)') {
|
||||
nodejs(nodeJSInstallationName: 'Node23') {
|
||||
sh 'pnpm install --frozen-lockfile --production=false'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build (Ubuntu)') {
|
||||
nodejs(nodeJSInstallationName: 'Node23') {
|
||||
sh "VITE_BUILD_NUMBER=${env.BUILD_NUMBER} NODE_ENV=production pnpm build:linux"
|
||||
}
|
||||
}
|
||||
|
||||
stage('Archive Artifacts (Ubuntu)') {
|
||||
archiveArtifacts artifacts: 'app_dist/**/*.deb, app_dist/**/*.rpm', fingerprint: true
|
||||
}
|
||||
} finally {
|
||||
cleanWs()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def buildOnLabel(label, buildCommand) {
|
||||
return {
|
||||
node(label) {
|
||||
@ -30,61 +65,45 @@ def buildOnLabel(label, buildCommand) {
|
||||
stage("Build (${label})") {
|
||||
nodejs(nodeJSInstallationName: 'Node23') {
|
||||
if (isUnix()) {
|
||||
sh "NODE_ENV=production ${buildCommand}"
|
||||
sh "VITE_BUILD_NUMBER=${env.BUILD_NUMBER} NODE_ENV=production ${buildCommand}"
|
||||
} else {
|
||||
bat "set NODE_ENV=production && ${buildCommand}"
|
||||
bat "set VITE_BUILD_NUMBER=${env.BUILD_NUMBER} && set NODE_ENV=production && ${buildCommand}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage("Archive Artifacts (${label})") {
|
||||
archiveArtifacts artifacts: 'app_dist/**/*.dmg, app_dist/**/*.exe, app_dist/**/*.AppImage, app_dist/**/*.deb, app_dist/**/*.rpm', fingerprint: true
|
||||
archiveArtifacts artifacts: 'app_dist/**/farmcontrol-server-*.dmg, app_dist/**/farmcontrol-server-*.exe, app_dist/**/farmcontrol-server-*.pkg, app_dist/**/farmcontrol-server-*.msi', fingerprint: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
def setBuildNameFromPackageVersion() {
|
||||
node('ubuntu') {
|
||||
stage('Set Build Name') {
|
||||
checkout scm
|
||||
def version
|
||||
nodejs(nodeJSInstallationName: 'Node23') {
|
||||
version = sh(
|
||||
script: "node -p \"require('./package.json').version\"",
|
||||
returnStdout: true
|
||||
).trim()
|
||||
}
|
||||
def buildName = "v${version}-b${env.BUILD_NUMBER}"
|
||||
currentBuild.displayName = buildName
|
||||
echo "Build name set to: ${buildName}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
setBuildNameFromPackageVersion()
|
||||
|
||||
parallel(
|
||||
'Windows Build': buildOnLabel('windows', 'pnpm build:electron'),
|
||||
'MacOS Build': buildOnLabel('macos', 'pnpm build:electron'),
|
||||
'Linux Build': buildLinuxWithBun()
|
||||
'Ubuntu Build': { buildLinux() }
|
||||
)
|
||||
|
||||
echo 'All parallel stages completed successfully!'
|
||||
|
||||
49
package.json
49
package.json
@ -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": "bun run cleanBuild && 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",
|
||||
"build:linux": "pnpm run cleanBuild && pnpm 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",
|
||||
"cleanBuild": "rimraf build"
|
||||
},
|
||||
"author": "Tom Butcher",
|
||||
@ -74,6 +74,7 @@
|
||||
"appId": "com.tombutcher.farmcontrolserver",
|
||||
"productName": "Farm Control Server",
|
||||
"executableName": "farmcontrol-server",
|
||||
"artifactName": "farmcontrol-server-${version}-${arch}.${ext}",
|
||||
"icon": "assets/farmcontrolhosticon.png",
|
||||
"directories": {
|
||||
"output": "app_dist"
|
||||
@ -83,10 +84,52 @@
|
||||
"node_modules/**/*"
|
||||
],
|
||||
"mac": {
|
||||
"target": "dmg"
|
||||
"target": [
|
||||
{
|
||||
"target": "dmg",
|
||||
"arch": [
|
||||
"arm64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "pkg",
|
||||
"arch": [
|
||||
"arm64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "dmg",
|
||||
"arch": [
|
||||
"x64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "pkg",
|
||||
"arch": [
|
||||
"x64"
|
||||
]
|
||||
}
|
||||
],
|
||||
"mergeASARs": true,
|
||||
"x64ArchFiles": "**/node_modules/@esbuild/darwin-x64/**",
|
||||
"singleArchFiles": "**/node_modules/**"
|
||||
},
|
||||
"win": {
|
||||
"target": "nsis"
|
||||
"target": [
|
||||
"nsis",
|
||||
"msiWrapped"
|
||||
]
|
||||
},
|
||||
"nsis": {
|
||||
"oneClick": false,
|
||||
"allowToChangeInstallationDirectory": true,
|
||||
"perMachine": true
|
||||
},
|
||||
"msiWrapped": {
|
||||
"upgradeCode": "{A4E29F1C-8B3D-5E2A-9C71-1D6F8E4A2B90}",
|
||||
"perMachine": true,
|
||||
"impersonate": false,
|
||||
"wrappedInstallerArgs": "/S"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import svgr from "vite-plugin-svgr";
|
||||
import svgo from "vite-plugin-svgo";
|
||||
|
||||
export default defineConfig({
|
||||
base: "./",
|
||||
plugins: [react(), svgr(), svgo()],
|
||||
root: path.resolve(__dirname),
|
||||
build: {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user