def pipelineContext = [:] pipeline { agent any options { skipDefaultCheckout(true) } stages { stage('Checkout') { steps { checkout scm } } stage('Build API') { steps { script { pipelineContext.apiImage = docker.build("open-dmp-api:${env.BUILD_ID}", "-f dmp-backend/Dockerfile.CI dmp-backend/") } } } stage('Build WebApp') { steps { script { pipelineContext.webappImage = docker.build("open-dmp-webapp:${env.BUILD_ID}", "-f dmp-frontend/Dockerfile.CI dmp-frontend/") } } } //stage('SonarQube analysis') { // steps { // script { // def scannerHome = tool 'SonarQube Scanner 4.3'; // withSonarQubeEnv('SonarQube') { // If you have configured more than one global server connection, you can specify its name // sh "${scannerHome}/bin/sonar-scanner" // } // } // } //} //// waiting for sonar results based into the configured web hook in Sonar server which push the status back to jenkins //stage('SonarQube scan result check') { // steps { // timeout(time: 2, unit: 'MINUTES') { // retry(3) { // script { // def qg = waitForQualityGate() // if (qg.status != 'OK') { // error "Pipeline aborted due to quality gate failure: ${qg.status}" // } // } // } // } // } //} stage('Pushing to Docker Registry') { steps { script { docker.withRegistry('http://drepo.local.cite.gr', 'b2c651c1-9a3b-4a98-a6da-e1dd7a20f512') { pipelineContext.apiImage.push() pipelineContext.webappImage.push() } } } } } }