68 lines
1.9 KiB
Groovy
68 lines
1.9 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
tools {
|
|
nodejs 'NodeJS 20'
|
|
}
|
|
|
|
environment {
|
|
FRONT_DEST = '/var/www/xeewy.be'
|
|
BACK_DEST = '/var/www/xeewy/backend'
|
|
SERVICE_NAME = 'xeewy-backend'
|
|
}
|
|
|
|
stages {
|
|
// --- FRONTEND (Rien ne change ici) ---
|
|
stage('Build Frontend') {
|
|
steps {
|
|
echo '--- Building React Frontend ---'
|
|
dir('frontend') {
|
|
sh 'npm install'
|
|
sh 'npm run build'
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Deploy Frontend') {
|
|
steps {
|
|
echo '--- Deploying Frontend ---'
|
|
sh "rm -rf ${FRONT_DEST}/*"
|
|
sh "cp -r frontend/dist/* ${FRONT_DEST}/"
|
|
}
|
|
}
|
|
|
|
// --- BACKEND (C'est ici qu'on change) ---
|
|
stage('Build Backend') {
|
|
steps {
|
|
echo '--- Building TypeScript Backend ---'
|
|
dir('backend') {
|
|
sh 'npm install'
|
|
sh 'npm run build' // Compile le TS vers JS (dossier dist/)
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Deploy Backend') {
|
|
steps {
|
|
echo '--- Deploying Backend ---'
|
|
// On copie le dossier compilé (dist) vers le serveur
|
|
sh "rm -rf ${BACK_DEST}/*"
|
|
sh "cp backend/package.json ${BACK_DEST}/"
|
|
sh "cp backend/package-lock.json ${BACK_DEST}/"
|
|
|
|
// Copie du dossier dist (le résultat de la compilation)
|
|
sh "cp -r backend/dist ${BACK_DEST}/"
|
|
|
|
// Installation des dépendances de prod uniquement
|
|
sh "cd ${BACK_DEST} && npm install --production"
|
|
}
|
|
}
|
|
|
|
stage('Restart Service') {
|
|
steps {
|
|
echo '--- Restarting Service ---'
|
|
sh "sudo systemctl restart ${SERVICE_NAME}"
|
|
}
|
|
}
|
|
}
|
|
} |