Files
gameovergne-app/jenkinsfile
2025-11-25 13:57:55 +00:00

68 lines
1.8 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'
COMPOSE_PROJECT = 'gameovergne-app'
}
stages {
stage('Checkout sur la branche dev') {
steps {
git branch: 'dev', url: 'https://gitea.vincent-guillet.fr/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.vincent-guillet.fr/gameovergne-api:dev-latest ./api'
}
}
stage('Angular Docker Build') {
steps {
sh 'docker build -t registry.vincent-guillet.fr/gameovergne-client:dev-latest ./client'
}
}
stage('Deployment') {
steps {
sh '''
CONTAINERS=$(docker ps -a --filter "label=com.docker.compose.project=${COMPOSE_PROJECT}" -q || true)
if [ -n "$CONTAINERS" ]; then
docker rm -f $CONTAINERS
fi
echo "=== (Re)création de la stack MySQL + Spring + Angular ==="
docker-compose up -d mysql spring angular
'''
}
}
}
}