pipeline { agent any environment { service = 'backend-petclinic-config-server' gitBranch = 'staging' serviceExposedPort = '8888' } stages { stage('Branch Check') { when { expression { env.BRANCH_NAME == gitBranch } } stages { stage('Clean Workspace') { steps { deleteDir() } } stage('Prepare Environment') { steps { script { env.gitRepository = "ssh://git@git.gansejunge.com:1322/devops-project/${env.service}.git" } } } stage('Checkout Code') { steps { git branch: "${gitBranch}", url: "${gitRepository}", credentialsId: 'jenkins-ssh' } } stage('Get Commit ID') { steps { script { gitCommitID = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() } } } stage('Build Docker Image') { steps { script { def imageTag = "${service}:${gitCommitID}-${env.BUILD_NUMBER}" def buildArgs = "--build-arg ARTIFACT_NAME=${service} --build-arg EXPOSED_PORT=${serviceExposedPort}" sh "docker build -t ${imageTag} ${buildArgs} ." } } } } } } }