50 lines
1.3 KiB
Groovy
50 lines
1.3 KiB
Groovy
node {
|
|
env.NODE_ENV = 'production'
|
|
|
|
try {
|
|
stage('Checkout') {
|
|
checkout scm
|
|
}
|
|
|
|
stage('Setup Node.js') {
|
|
nodejs(nodeJSInstallationName: 'Node23') {
|
|
sh 'node -v'
|
|
sh 'npm -v'
|
|
}
|
|
}
|
|
|
|
stage('Install Dependencies') {
|
|
nodejs(nodeJSInstallationName: 'Node23') {
|
|
sh 'npm ci --include=dev'
|
|
}
|
|
}
|
|
|
|
stage('Build') {
|
|
nodejs(nodeJSInstallationName: 'Node23') {
|
|
sh 'npm run build'
|
|
}
|
|
}
|
|
|
|
stage('Deploy to printer1') {
|
|
def remote = [:]
|
|
remote.name = 'printer1'
|
|
remote.host = 'printer1.tombutcher.local'
|
|
remote.user = 'ci'
|
|
remote.password = 'ci'
|
|
remote.allowAnyHosts = true
|
|
|
|
// Copy the build directory to the remote server
|
|
sshPut remote: remote, from: 'build/', into: '/srv/farmcontrol-server/'
|
|
|
|
// Restart the service using sudo
|
|
sshCommand remote: remote, command: 'sudo /bin/systemctl restart farmcontrol-server.service'
|
|
}
|
|
|
|
echo 'Pipeline completed successfully!'
|
|
} catch (Exception e) {
|
|
echo 'Pipeline failed!'
|
|
throw e
|
|
} finally {
|
|
cleanWs()
|
|
}
|
|
} |