pipeline { agent any stages { stage('Checkout') { steps { script { checkout([ $class: 'GitSCM', branches: [[name: 'pipeline/deploy-image']], userRemoteConfigs: [[ url: 'https://gitea.mindboost.team/Mindboost/mindboost-webapp.git', credentialsId: 'b5f383be-8c74-40f9-b7e1-3a9c5856df0e' ]] ]) } } } stage('Check Repository') { steps { script { sh 'pwd' // Zeigt das aktuelle Verzeichnis sh 'ls -la' // Prüft, ob das .git-Verzeichnis existiert sh 'git status' // Stellt sicher, dass das Repo korrekt initialisiert ist } } } stage('Get Commit Hash') { steps { script { env.WEBAPP_COMMIT_HASH = sh( script: 'git rev-parse --short HEAD', returnStdout: true ).trim() echo "Commit Hash: ${env.WEBAPP_COMMIT_HASH}" } } } stage('Check Docker Image with the same tag') { steps { script { def imageExists = sh( script: "docker images -q mindboost_frontend_image:${env.WEBAPP_COMMIT_HASH} || true", returnStdout: true ).trim() if (imageExists) { echo "Docker Image mit Tag ${env.WEBAPP_COMMIT_HASH} existiert bereits. Überspringe Build." currentBuild.result = 'SUCCESS' return } else { echo "Kein vorhandenes Docker Image gefunden. Baue neues Image..." } } } } stage('Build Docker Image') { when { expression { currentBuild.result == null } // Nur wenn vorher kein Image existierte } steps { script { sh "docker build --build-arg BACKEND_URL=https://b.mindboost.team --rm -t mindboost_frontend_image:${env.WEBAPP_COMMIT_HASH} . " } } } } }