From 54992166d1fcd52231b2082774da340837992ca3 Mon Sep 17 00:00:00 2001 From: MihailInternul <157023284+MihailInternul@users.noreply.github.com> Date: Thu, 15 Feb 2024 15:16:15 +0200 Subject: [PATCH] Create Jenkinsfile --- Jenkinsfile | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000..c41919d05 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,62 @@ +pipeline { + agent any + + stages { + stage('Checkstyle') { + when { + expression { env.CHANGE_TARGET ==~ /^merge$/ } + } + steps { + // Use Maven checkstyle plugin to generate a code style report + sh 'mvn checkstyle:checkstyle' + archiveArtifacts artifacts: '**/target/checkstyle-result.xml', fingerprint: true + } + } + stage('Test') { + when { + expression { env.CHANGE_TARGET ==~ /^merge$/ } + } + steps { + // Run tests with Maven + sh 'mvn test' + } + } + stage('Build') { + when { + expression { env.CHANGE_TARGET ==~ /^merge$/ } + } + steps { + // Build without tests with Maven + sh 'mvn clean package -DskipTests' + } + } + stage('Create Docker Image MR') { + when { + expression { env.CHANGE_TARGET ==~ /^merge$/ } + } + steps { + // Build Docker image from Dockerfile + script { + def gitCommitShort = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() + def dockerImage = "mihailinternul/mr:${gitCommitShort}" + sh "docker build -t ${dockerImage} ." + sh "docker push ${dockerImage}" + } + } + } + stage('Create Docker Image Main') { + when { + expression { env.CHANGE_TARGET ==~ /^main$/ } + } + steps { + // Build Docker image from Dockerfile + script { + def gitCommitShort = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() + def dockerImage = "mihailinternul/main:${gitCommitShort}" + sh "docker build -t ${dockerImage} ." + sh "docker push ${dockerImage}" + } + } + } + } +}