Update Jenkinsfile

This commit is contained in:
Sofiia Churikova 2025-05-02 11:45:55 +03:00
parent 6d8f432f58
commit 584389458d

44
Jenkinsfile vendored
View file

@ -1,12 +1,16 @@
pipeline { pipeline {
agent any agent any
tools { tools {
maven 'Maven' maven 'Maven'
} }
environment { environment {
DOCKER_HUB_CREDENTIALS = credentials('docker-hub-credentials') DOCKER_HUB_CREDENTIALS = credentials('docker-hub-credentials')
DOCKER_HUB_USERNAME = "${DOCKER_HUB_CREDENTIALS_USR}" DOCKER_HUB_USERNAME = "${DOCKER_HUB_CREDENTIALS_USR}"
GIT_COMMIT_SHORT = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
} }
stages { stages {
stage('Merge Request Pipeline') { stage('Merge Request Pipeline') {
when { when {
@ -49,12 +53,16 @@ pipeline {
stage('Create Docker Image') { stage('Create Docker Image') {
steps { steps {
script { script {
def shortCommit = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() try {
sh 'echo $DOCKER_HUB_CREDENTIALS_PSW | docker login -u $DOCKER_HUB_CREDENTIALS_USR --password-stdin' sh 'echo $DOCKER_HUB_CREDENTIALS_PSW | docker login -u $DOCKER_HUB_CREDENTIALS_USR --password-stdin'
def imageName = "${DOCKER_HUB_USERNAME}/mr:${shortCommit}" def imageName = "${DOCKER_HUB_USERNAME}/mr:${GIT_COMMIT_SHORT}"
sh "docker build -t ${imageName} -f Dockerfile.multi ." sh "docker build -t ${imageName} -f Dockerfile ."
sh "docker push ${imageName}" sh "docker push ${imageName}"
sh 'docker logout' } catch (Exception e) {
error "Failed to build or push Docker image: ${e.message}"
} finally {
sh 'docker logout'
}
} }
} }
} }
@ -80,19 +88,29 @@ pipeline {
stage('Create Docker Image') { stage('Create Docker Image') {
steps { steps {
script { script {
def shortCommit = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() try {
sh 'echo $DOCKER_HUB_CREDENTIALS_PSW | docker login -u $DOCKER_HUB_CREDENTIALS_USR --password-stdin'
sh 'echo $DOCKER_HUB_CREDENTIALS_PSW | docker login -u $DOCKER_HUB_CREDENTIALS_USR --password-stdin'
def imageName = "${DOCKER_HUB_USERNAME}/main:${shortCommit}" def imageNameWithCommit = "${DOCKER_HUB_USERNAME}/main:${GIT_COMMIT_SHORT}"
sh "docker build -t ${imageName} -f Dockerfile.multi ." sh "docker build -t ${imageNameWithCommit} -f Dockerfile ."
sh "docker push ${imageName}"
sh 'docker logout' def imageNameLatest = "${DOCKER_HUB_USERNAME}/main:latest"
sh "docker tag ${imageNameWithCommit} ${imageNameLatest}"
sh "docker push ${imageNameWithCommit}"
sh "docker push ${imageNameLatest}"
} catch (Exception e) {
error "Failed to build or push Docker image: ${e.message}"
} finally {
sh 'docker logout'
}
} }
} }
} }
} }
} }
} }
post { post {
always { always {
cleanWs() cleanWs()