mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-16 12:55:50 +00:00
Add more stages to Jenkinsfile
This commit is contained in:
parent
61a75b5570
commit
29b73475db
1 changed files with 78 additions and 8 deletions
86
Jenkinsfile
vendored
86
Jenkinsfile
vendored
|
@ -4,7 +4,9 @@ pipeline {
|
||||||
environment {
|
environment {
|
||||||
// Define environment variables
|
// Define environment variables
|
||||||
DOCKER_REGISTRY = "docker.io"
|
DOCKER_REGISTRY = "docker.io"
|
||||||
DOCKER_IMAGE = "mmarcetic/main"
|
DOCKER_IMAGE_MAIN = 'mmarcetic/main'
|
||||||
|
DOCKER_IMAGE_MR = 'mmarcetic/mr'
|
||||||
|
GIT_COMMIT = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
|
||||||
}
|
}
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
|
@ -15,23 +17,91 @@ pipeline {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Build Docker Image') {
|
stage('Set Docker Image') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
// Build the Docker image
|
// Set Docker image based on the branch name
|
||||||
def gitCommit = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
|
if (env.BRANCH_NAME == 'main') {
|
||||||
sh "docker build -t ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${gitCommit} ."
|
env.DOCKER_IMAGE = DOCKER_IMAGE_MAIN
|
||||||
|
} else {
|
||||||
|
env.DOCKER_IMAGE = DOCKER_IMAGE_MR
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Using Docker image: ${env.DOCKER_IMAGE}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Push Docker Image') {
|
stage('Checkstyle Report') {
|
||||||
|
when {
|
||||||
|
changeRequest()
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
// Checkstyle with Gradle
|
||||||
|
sh './gradlew checkstyleMain'
|
||||||
|
archiveArtifacts artifacts: 'build/reports/checkstyle/checkstyle.xml'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Test') {
|
||||||
|
when {
|
||||||
|
changeRequest()
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
// Test using Gradle
|
||||||
|
sh './gradlew test'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build Without Tests') {
|
||||||
|
when {
|
||||||
|
changeRequest()
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
// Build without tests using Gradle
|
||||||
|
sh './gradlew build -x test'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Build Docker Image') {
|
||||||
|
when {
|
||||||
|
changeRequest()
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
// Build the Docker image
|
||||||
|
sh "docker build -t ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${GIT_COMMIT} ."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Push Docker Image for Change Request') {
|
||||||
|
when {
|
||||||
|
changeRequest()
|
||||||
|
}
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
def gitCommit = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
|
|
||||||
withCredentials([usernamePassword(credentialsId: "docker-login", usernameVariable: "DOCKER_USER", passwordVariable: "DOCKER_PASSWORD")]) {
|
withCredentials([usernamePassword(credentialsId: "docker-login", usernameVariable: "DOCKER_USER", passwordVariable: "DOCKER_PASSWORD")]) {
|
||||||
sh "docker login -u ${DOCKER_USER} -p ${DOCKER_PASSWORD}"
|
sh "docker login -u ${DOCKER_USER} -p ${DOCKER_PASSWORD}"
|
||||||
sh "docker push ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${gitCommit}"
|
sh "docker push ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${GIT_COMMIT}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Push Docker Image for Main') {
|
||||||
|
when {
|
||||||
|
branch "main"
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
withCredentials([usernamePassword(credentialsId: "docker-login", usernameVariable: "DOCKER_USER", passwordVariable: "DOCKER_PASSWORD")]) {
|
||||||
|
sh "docker login -u ${DOCKER_USER} -p ${DOCKER_PASSWORD}"
|
||||||
|
sh "docker push ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${GIT_COMMIT}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue