Update Jenkinsfile

This commit is contained in:
Marija Stopa 2025-01-17 13:15:09 +01:00 committed by GitHub
parent 4cccb3af36
commit 166f9bc4fc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

83
Jenkinsfile vendored
View file

@ -1,67 +1,76 @@
pipeline { pipeline {
agent any agent {
docker {
parameters { image 'docker:20.10.8-dind' // Docker DinD image
string(name: "DOCKERHUB_CREDENTIALS_ID", description: "DockerHub credentials ID") args '--privileged -v /var/lib/docker:/var/lib/docker'
}
} }
environment { environment {
DOCKERHUB_REPO_MR = "mr-jenkins" DOCKER_IMAGE_NAME = "mr-jenkins"
DOCKERHUB_REPO_MAIN = "main-jenkins" DOCKER_MAIN_REPO = "main-jenkins"
SHORT_COMMIT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
DOCKERHUB_REPO = "marijastopa"
} }
stages { stages {
stage("Checkstyle") { stage('Checkstyle') {
when { when {
expression { env.BRANCH_NAME != 'main' } not { branch 'main' } // merge request
} }
steps { steps {
withMaven(maven: 'maven-3.9.8') { sh './mvnw checkstyle:checkstyle'
sh './mvnw checkstyle:checkstyle -Dcheckstyle.output.file=target/checkstyle-result.xml' archiveArtifacts artifacts: 'target/site/checkstyle.html', fingerprint: true
}
}
post {
always {
archiveArtifacts artifacts: 'target/checkstyle-result.xml', allowEmptyArchive: false
}
} }
} }
stage('Test') {
stage("Test") {
when { when {
expression { env.BRANCH_NAME != 'main' } not { branch 'main' } // merge request
} }
steps { steps {
withMaven(maven: 'maven-3.9.8') { sh './mvnw clean test'
sh './mvnw clean test'
}
} }
} }
stage('Build') {
stage("Build") {
when { when {
expression { env.BRANCH_NAME != 'main' } not { branch 'main' } // merge request
} }
steps { steps {
withMaven(maven: 'maven-3.9.8') { sh './mvnw clean package -DskipTests'
sh './mvnw clean package -DskipTests'
}
} }
} }
stage('Create Docker Image') {
stage("Create Docker Image") {
steps { steps {
script { script {
def imageName = "${env.DOCKERHUB_REPO_MR}:${env.GIT_COMMIT.substring(0, 7)}" def repoName = BRANCH_NAME == 'main' ? DOCKER_MAIN_REPO : DOCKER_IMAGE_NAME
if (env.BRANCH_NAME == 'main') { def tag = "${DOCKERHUB_REPO}/${repoName}:${SHORT_COMMIT}"
imageName = "${env.DOCKERHUB_REPO_MAIN}:${env.GIT_COMMIT.substring(0, 7)}" sh "docker build -t ${tag} ."
} }
docker.build(imageName) }
docker.withRegistry('https://index.docker.io/v1/', "${params.DOCKERHUB_CREDENTIALS_ID}") { }
docker.image(imageName).push() stage('Push Docker Image') {
steps {
script {
def repoName = BRANCH_NAME == 'main' ? DOCKER_MAIN_REPO : DOCKER_IMAGE_NAME
def tag = "${DOCKERHUB_REPO}/${repoName}:${SHORT_COMMIT}"
withCredentials([usernamePassword(credentialsId: 'dockerhub-credentials', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) {
sh "echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin"
sh "docker push ${tag}"
} }
} }
} }
} }
} }
post {
always {
echo 'Pipeline completed.'
}
success {
echo 'Pipeline completed successfully.'
}
failure {
echo 'Pipeline failed.'
}
}
} }