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' } def imageApache = stage("Build apache dev") { docker.build("server-apache-dev", "--no-cache --label traefik.enable=true --label traefik.http.routers.server-apache-dev.rule='Host(`angular-dev.foodgame.fr`)' --label traefik.http.routers.server-apache-dev.entrypoints=websecure --label traefik.http.routers.server-apache-dev.tls.certresolver=myresolver -f build/docker/httpd/Dockerfile .") } def imageExpress = stage("Build express dev") { docker.build("server-express-dev", "--no-cache -f express-server/Dockerfile express-server") } // stage("Push preprod images to nexus") // { // docker.withRegistry('http://localhost:8083','885ef60c-9352-489a-bd1c-e4b695747c21') // { // imageApache.push('latest') // imageExpress.push('latest') // } // } // stage('SonarQube analysis') // { // def scannerHome = tool name: 'SonarQube Scanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation'; // withSonarQubeEnv('SonarQube') // { // // If you have configured more than one global server connection, you can specify its name // sh "${scannerHome}/bin/sonar-scanner \ // -Dsonar.projectKey=FatboarProject \ // -Dsonar.sources=. \ // -Dsonar.host.url=https://sonarqube.foodgame.fr \ // -Dsonar.login=sqa_9980d9f6eac6a910947f1b55aaa280c93f02236b" // } // } 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é!"' } }