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