From e32f8e565e204b39640fb07085e8da18d45cc266 Mon Sep 17 00:00:00 2001 From: Sofiia Churikova Date: Fri, 2 May 2025 02:54:12 +0300 Subject: [PATCH] Update Jenkinsfile --- Jenkinsfile | 179 +++++++++++++++++++++++++++++----------------------- 1 file changed, 100 insertions(+), 79 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a5948e88a..51707739f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,81 +1,102 @@ pipeline { - agent any - tools { - maven 'Maven' - } - stages { - stage('Merge Request Pipeline') { - when { - not { branch 'main' } - } - stages { - stage('Checkstyle') { - steps { - sh 'mvn checkstyle:checkstyle' - } - post { - always { - archiveArtifacts artifacts: 'target/checkstyle-result.xml', allowEmptyArchive: true - } - } - } - stage('Test') { - steps { - sh 'mvn test' - } - post { - always { - junit 'target/surefire-reports/*.xml' - } - } - } - stage('Build') { - steps { - sh 'mvn clean package -DskipTests' - } - post { - success { - archiveArtifacts artifacts: 'target/*.jar', fingerprint: true - } - } - } - stage('Create Docker Image') { - steps { - script { - def shortCommit = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() - - withCredentials([usernamePassword(credentialsId: 'nexus-credentials', - usernameVariable: 'NEXUS_USERNAME', - passwordVariable: 'NEXUS_PASSWORD')]) { - - sh "docker build -f Dockerfile.multi -t ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MR}/${env.NEXUS_REPO_MR}:${shortCommit} ." - sh "docker login ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MR} -u ${NEXUS_USERNAME} -p ${NEXUS_PASSWORD}" - sh "docker push ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MR}/${env.NEXUS_REPO_MR}:${shortCommit}" - } - } - } - } - } - } - stage('Main Branch Pipeline') { - when { - branch 'main' - } - steps { - script { - def shortCommit = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() - sh 'mvn clean package -DskipTests' - - withCredentials([usernamePassword(credentialsId: 'nexus-credentials', - usernameVariable: 'NEXUS_USERNAME', - passwordVariable: 'NEXUS_PASSWORD')]) { - - sh "docker build -f Dockerfile.multi -t ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MAIN}/${env.NEXUS_REPO_MAIN}:${shortCommit} ." - sh "docker login ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MAIN} -u ${NEXUS_USERNAME} -p ${NEXUS_PASSWORD}" - sh "docker push ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MAIN}/${env.NEXUS_REPO_MAIN}:${shortCommit}" - } - } - } - } - } + agent any + tools { + maven 'Maven' + } + stages { + stage('Merge Request Pipeline') { + when { + not { branch 'main' } + } + stages { + stage('Checkstyle') { + steps { + sh 'mvn checkstyle:checkstyle' + } + post { + always { + archiveArtifacts artifacts: 'target/checkstyle-result.xml', allowEmptyArchive: true + } + } + } + stage('Test') { + steps { + sh 'mvn test' + } + post { + always { + junit 'target/surefire-reports/*.xml' + } + } + } + stage('Build') { + steps { + sh 'mvn clean package -DskipTests' + } + post { + success { + archiveArtifacts artifacts: 'target/*.jar', fingerprint: true + } + } + } + stage('Create Docker Image') { + agent { + docker { + image 'docker:dind' + args '-v /var/run/docker.sock:/var/run/docker.sock' + } + } + steps { + script { + def shortCommit = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() + withCredentials([usernamePassword(credentialsId: 'nexus-credentials', + usernameVariable: 'NEXUS_USERNAME', + passwordVariable: 'NEXUS_PASSWORD')]) { + sh "docker build -f Dockerfile.multi -t ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MR}/${env.NEXUS_REPO_MR}:${shortCommit} ." + sh "docker login ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MR} -u ${NEXUS_USERNAME} -p ${NEXUS_PASSWORD}" + sh "docker push ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MR}/${env.NEXUS_REPO_MR}:${shortCommit}" + } + } + } + } + } + } + stage('Main Branch Pipeline') { + when { + branch 'main' + } + stages { + stage('Build') { + steps { + sh 'mvn clean package -DskipTests' + } + post { + success { + archiveArtifacts artifacts: 'target/*.jar', fingerprint: true + } + } + } + stage('Create Docker Image') { + agent { + docker { + image 'docker:dind' + args '-v /var/run/docker.sock:/var/run/docker.sock' + } + } + steps { + script { + def shortCommit = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() + withCredentials([usernamePassword(credentialsId: 'nexus-credentials', + usernameVariable: 'NEXUS_USERNAME', + passwordVariable: 'NEXUS_PASSWORD')]) { + sh "docker build -f Dockerfile.multi -t ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MAIN}/${env.NEXUS_REPO_MAIN}:${shortCommit} ." + sh "docker login ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MAIN} -u ${NEXUS_USERNAME} -p ${NEXUS_PASSWORD}" + sh "docker push ${env.NEXUS_SERVER}:${env.NEXUS_PORT_MAIN}/${env.NEXUS_REPO_MAIN}:${shortCommit}" + } + } + } + } + } + } + } } \ No newline at end of file