80 lines
2.1 KiB
Plaintext
80 lines
2.1 KiB
Plaintext
pipeline {
|
||
agent any
|
||
|
||
tools {
|
||
maven 'mvn'
|
||
nodejs 'npm'
|
||
}
|
||
|
||
environment {
|
||
JAVA_HOME = '/opt/java/openjdk'
|
||
PATH = "${JAVA_HOME}/bin:${env.PATH}"
|
||
SPRING_IMAGE_NAME = 'spring-jenkins'
|
||
ANGULAR_IMAGE_NAME = 'angular-jenkins'
|
||
IMAGE_TAG = 'latest'
|
||
}
|
||
|
||
stages {
|
||
stage('Checkout sur la branche dev') {
|
||
steps {
|
||
git branch: 'dev', url: 'https://gitea.unifihomenetwork.com/vincentguillet/gameovergne-app.git'
|
||
}
|
||
}
|
||
|
||
stage('Maven Build') {
|
||
steps {
|
||
dir('api') {
|
||
sh 'mvn clean package -DskipTests'
|
||
}
|
||
}
|
||
}
|
||
|
||
stage('Angular Build') {
|
||
steps {
|
||
dir('client') {
|
||
sh 'npm install'
|
||
sh 'npm run build'
|
||
}
|
||
}
|
||
}
|
||
|
||
stage('Spring Docker Build') {
|
||
steps {
|
||
sh 'docker build -t registry.unifihomenetwork.com/gameovergne-api:dev-latest ./api'
|
||
}
|
||
}
|
||
|
||
stage('Angular Docker Build') {
|
||
steps {
|
||
sh 'docker build -t registry.unifihomenetwork.com/gameovergne-client:dev-latest ./client'
|
||
}
|
||
}
|
||
|
||
stage('Spring Deployment') {
|
||
steps {
|
||
sh '''
|
||
# On supprime l’ancien conteneur backend s’il existe
|
||
docker rm -f gameovergne-api || true
|
||
|
||
# On s’assure que MySQL est lancé
|
||
docker-compose up -d mysql
|
||
|
||
# On recrée le conteneur Spring proprement
|
||
docker-compose up -d spring
|
||
'''
|
||
}
|
||
}
|
||
|
||
stage('Angular Deployment') {
|
||
steps {
|
||
sh '''
|
||
# On supprime l’ancien conteneur frontend s’il existe
|
||
docker rm -f gameovergne-client || true
|
||
|
||
# On recrée le conteneur Angular proprement
|
||
docker-compose up -d angular
|
||
'''
|
||
}
|
||
}
|
||
}
|
||
} |