|
|
@@ -16,24 +16,6 @@ node {
|
|
|
sh 'docker system prune -f'
|
|
|
}
|
|
|
|
|
|
- node {
|
|
|
- env.NODEJS_HOME = "${tool 'NodeJS'}"
|
|
|
- // on linux / mac
|
|
|
- env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
|
|
|
- // on windows
|
|
|
- //env.PATH="${env.NODEJS_HOME};${env.PATH}"
|
|
|
- sh 'npm --version'
|
|
|
-
|
|
|
- stage('checkout') {
|
|
|
- deleteDir()
|
|
|
- checkout scm
|
|
|
- }
|
|
|
-
|
|
|
- stage('Stop Containers') {
|
|
|
- sh 'docker ps | grep "workflow_" -v | awk -F " " \'{ if(NR>1) print $1}\' |xargs docker kill |xargs docker rm || true'
|
|
|
- sh 'docker system prune -f'
|
|
|
- }
|
|
|
-
|
|
|
stage('Push Docker images to Nexus') {
|
|
|
environment {
|
|
|
NEXUS_URL = 'https://nexus.foodgame.fr'
|
|
|
@@ -44,36 +26,31 @@ node {
|
|
|
DOCKER_IMAGE_TAG = 'latest'
|
|
|
}
|
|
|
script {
|
|
|
- withCredentials([usernamePassword(credentialsId: 'NEXUS_CREDENTIAL_ID', usernameVariable: 'NEXUS_USERNAME', passwordVariable: 'NEXUS_PASSWORD')]) {
|
|
|
- def dockerImage = "${env.DOCKER_IMAGE_NAME}:${env.DOCKER_IMAGE_TAG}"
|
|
|
- def dockerRegistryUrl = "${env.NEXUS_URL}/repository/${env.DOCKER_IMAGE_NAME}/"
|
|
|
+ withCredentials([usernamePassword(
|
|
|
+ credentialsId: env.NEXUS_CREDENTIAL_ID,
|
|
|
+ usernameVariable: 'NEXUS_USERNAME',
|
|
|
+ passwordVariable: 'NEXUS_PASSWORD'
|
|
|
+ )]) {
|
|
|
+ def dockerImage = "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}"
|
|
|
+ def dockerRegistryUrl = "${NEXUS_URL}/repository/${DOCKER_IMAGE_NAME}/"
|
|
|
|
|
|
- // Build Docker image
|
|
|
- sh "docker build -t ${dockerImage} ."
|
|
|
+ // Utilisation de docker.withRegistry pour gérer l'authentification Docker
|
|
|
+ docker.withRegistry("${NEXUS_URL}", "${NEXUS_CREDENTIAL_ID}") {
|
|
|
+ // Construction de l'image Docker
|
|
|
+ sh "docker build -t ${dockerImage} ."
|
|
|
|
|
|
- // Tag Docker image for Nexus repository
|
|
|
- sh "docker tag ${dockerImage} ${dockerRegistryUrl}${dockerImage}"
|
|
|
+ // Tag de l'image Docker pour le dépôt Nexus
|
|
|
+ sh "docker tag ${dockerImage} ${dockerRegistryUrl}${dockerImage}"
|
|
|
|
|
|
- // Login to Nexus Docker registry
|
|
|
- sh "docker login -u ${env.NEXUS_USERNAME} -p ${env.NEXUS_PASSWORD} ${env.NEXUS_URL}"
|
|
|
-
|
|
|
- // Push Docker image to Nexus repository
|
|
|
- sh "docker push ${dockerRegistryUrl}${dockerImage}"
|
|
|
+ // Pousser l'image Docker vers le dépôt Nexus
|
|
|
+ sh "docker push ${dockerRegistryUrl}${dockerImage}"
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- stage('Build Docker MEAN Stack(PreProduction Deployment)') {
|
|
|
- sh 'docker-compose -v'
|
|
|
- sh 'docker-compose stop'
|
|
|
- sh 'docker-compose build'
|
|
|
- sh 'docker-compose up -d'
|
|
|
- }
|
|
|
|
|
|
- stage('Fin du Pipeline') {
|
|
|
- sh 'echo "Félicitation tout s\'est bien déroulé!"'
|
|
|
- }
|
|
|
-}
|
|
|
+
|
|
|
|
|
|
stage('Build Docker MEAN Stack(PreProduction Deployment)') {
|
|
|
sh 'docker-compose -v'
|