add merge request and main branch pipelines to Jenkinsfile

This commit is contained in:
imateja 2023-12-11 13:54:18 +01:00
parent 5b3f086182
commit 7785c1baa8

34
Jenkinsfile vendored
View file

@ -1,9 +1,7 @@
pipeline { pipeline {
agent any agent any
environment { environment {
// Define environment variable using credentials
DOCKER_CREDENTIALS = credentials('dockercreds') DOCKER_CREDENTIALS = credentials('dockercreds')
} }
@ -11,7 +9,6 @@ pipeline {
stage('Docker Login') { stage('Docker Login') {
steps { steps {
script { script {
// Perform Docker login using credentials
withEnv(["DOCKER_USERNAME=${DOCKER_CREDENTIALS_USR}", "DOCKER_PASSWORD=${DOCKER_CREDENTIALS_PSW}"]) { withEnv(["DOCKER_USERNAME=${DOCKER_CREDENTIALS_USR}", "DOCKER_PASSWORD=${DOCKER_CREDENTIALS_PSW}"]) {
sh "docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD" sh "docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD"
} }
@ -19,6 +16,9 @@ pipeline {
} }
} }
stage('Checkstyle') { stage('Checkstyle') {
when {
expression { env.CHANGE_ID != null } // Run only for merge requests
}
steps { steps {
sh './mvnw checkstyle:checkstyle' sh './mvnw checkstyle:checkstyle'
} }
@ -29,24 +29,44 @@ pipeline {
} }
} }
stage('Test') { stage('Test') {
when {
expression { env.CHANGE_ID != null } // Run only for merge requests
}
steps { steps {
sh './mvnw test' sh './mvnw test'
} }
} }
stage('Build Without Tests') { stage('Build Without Tests') {
when {
expression { env.CHANGE_ID != null } // Run only for merge requests
}
steps { steps {
sh './mvnw clean package -DskipTests' sh './mvnw clean package -DskipTests'
} }
} }
stage('Create Docker Image and Push') { stage('Create Docker Image for MR') {
when {
expression { env.CHANGE_ID != null } // Run only for merge requests
}
steps { steps {
script { script {
def commitId = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() def commitId = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
sh "docker build -t mivancevic/spring-petclinic:${commitId} ." sh "docker build -t mivancevic/mr:${commitId} ."
sh "docker push mivancevic/spring-petclinic:${commitId}" sh "docker push mivancevic/mr:${commitId}"
}
}
}
stage('Create Docker Image for Main') {
when {
branch 'main' // Run only for the main branch
}
steps {
script {
def commitId = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
sh "docker build -t mivancevic/main:${commitId} ."
sh "docker push mivancevic/main:${commitId}"
} }
} }
} }
} }
} }