pipeline { agent any stages { stage('Tag git commit') { steps { script { sshagent(['jenkins']) { sh """ git config user.email "jenkins" git config user.name "jenkins@dinauer-paf.de" git tag -a build-${env.BUILD_NUMBER} -m "Jenkins Build ${env.BUILD_NUMBER}" git push origin build-${env.BUILD_NUMBER} """ } } } } stage('Set Image Name') { steps { script { env.IMAGE = "harbor.dinauer.dev/kubooboo/frontend:${env.BUILD_NUMBER}"; } } } stage('Build Image') { steps { script { sh "docker build --no-cache -t ${env.IMAGE} ." } } } stage('Push Image to Docker Hub') { steps { script { withCredentials([usernamePassword(credentialsId: 'harbor', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { sh 'echo ${PASSWORD} | docker login harbor.dinauer.dev -u ${USERNAME} --password-stdin' sh "docker push ${env.IMAGE}" sh "docker logout harbor.dinauer.dev" } } } } stage('Remove image from host') { steps { script { sh "docker image rm --force ${env.IMAGE}" } } } } }