Files
xeewy.be/Jenkinsfile

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}"
}
}
}
}