pipeline { agent any environment { APP_NAME = "petclinic" DOCKER_USER = "rizjosel" IMAGE_TAG = "${BUILD_NUMBER}" IMAGE_NAME = "${DOCKER_USER}/${APP_NAME}:${IMAGE_TAG}" } stages { stage('List Workspace') { steps { sh 'ls -l' } } stage('CI / Unit Tests') { steps { sh './gradlew clean build -x test' //junit 'build/test-results/test/*.xml' } } stage('CI / Docker Build') { steps { sh "docker build -t ${IMAGE_NAME} ." } } stage('CI / Docker Integration') { steps { script { try { sh "docker run -d --name ${APP_NAME}-test -p 18080:8080 ${IMAGE_NAME}" sh "sleep 15" sh "curl -f http://localhost:18080/actuator/health" } finally { sh "docker stop ${APP_NAME}-test || true" sh "docker rm ${APP_NAME}-test || true" } } } } } }