From 10a269dbbf5ad59d66ae57903f4fa66ea289a9b6 Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Wed, 19 Mar 2025 14:11:54 +0530 Subject: [PATCH 01/42] Updated Project --- build.gradle | 4 ++++ settings.gradle | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b52d8e185..bef78d3f3 100644 --- a/build.gradle +++ b/build.gradle @@ -6,8 +6,11 @@ plugins { id 'org.cyclonedx.bom' version '1.10.0' id 'io.spring.javaformat' version '0.0.43' id "io.spring.nohttp" version "0.0.11" + id 'pl.allegro.tech.build.axion-release' version '1.18.18' } +version=scmVersion.version + apply plugin: 'java' apply plugin: 'checkstyle' apply plugin: 'io.spring.javaformat' @@ -88,3 +91,4 @@ checkFormatAotTest.enabled = false formatAot.enabled = false formatAotTest.enabled = false + diff --git a/settings.gradle b/settings.gradle index e60ee14fa..dc753dc81 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,2 @@ -rootProject.name = 'spring-petclinic' +rootProject.name = 'MyPetClinic' + From 4ce7ed9d3a0e9faa0236b78ee4fed44c91e46baa Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Wed, 23 Apr 2025 13:36:45 +0530 Subject: [PATCH 02/42] Initial commit with Dockerfile and Jenkinsfile --- Dockerfile | 3 + Jenkinsfile | 65 +++++ build.gradle | 9 + config/checkstyle/checkstyle.xml | 448 +++++++++++++++++++++++++++++++ 4 files changed, 525 insertions(+) create mode 100644 Dockerfile create mode 100644 Jenkinsfile create mode 100644 config/checkstyle/checkstyle.xml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..dbf03a32b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM eclipse-temurin:17-jdk-alpine +COPY build/libs/*.jar app.jar +ENTRYPOINT ["java", "-jar", "/app.jar"] diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000..d10264786 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,65 @@ +pipeline{ + agent any + + environment{ + REGISTRY_URL = "https://hub.docker.com/repositories/prankumar313" + IMAGE_NAME = "spring-petclinic" + GIT_COMMIT_SHORT = "${env.GIT_COMMIT[0..6]}" + } + + stages{ + stage('Checkstyle'){ + when{ + not{ + branch 'main' + } + } + steps{ + sh './gradlew checkstyleMain' + archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true + } + } + + stage('Test'){ + when{ + not{ + branch 'main' + } + } + steps{ + sh './gradlew test' + junit '**/build/test-results/test/*.xml' + } + } + + stage('Build'){ + steps{ + sh './gradlew clean build -x test' + } + } + + stage('Build Docker Image'){ + steps{ + script{ + def ImageTag = env.BRANCH_NAME == 'main' ? 'latest' : GIT_COMMIT_SHORT + sh "docker build -t $REGISTRY_URL/${IMAGE_NAME}:${imageTag} ." + } + } + } + + stage('Push Docker Image'){ + steps{ + script{ + def targetRepo = env.BRANCH_NAME == 'main' ? 'main' : 'mr' + def imageTag = env.BRANCH_NAME == 'main' ? 'latest' : GIT_COMMIT_SHORT + sh """ + echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin $REGISTRY_URL + docker tag $REGISTRY_URL/$(IMAGE_NAME):${imageTag} $REGISTRY_URL/${targetRepo}/${IMAGE_NAME}:${imageTag} + docker push $REGISTRY_URL/${targetRepo}/${IMAGE_NAME}:${imageTag} + """ + } + } + } + } +} + diff --git a/build.gradle b/build.gradle index bef78d3f3..a83b254e9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java' + id 'checkstyle' id 'org.springframework.boot' version '3.4.2' id 'io.spring.dependency-management' version '1.1.6' id 'org.graalvm.buildtools.native' version '0.10.3' @@ -24,6 +25,14 @@ java { sourceCompatibility = JavaVersion.VERSION_17 } +checkstyle{ + toolVersion = '10.12.3' + configFile = file("${rootDir}/config/checkstyle/checkstyle.xml") + configProperties = [ + 'checkstyle.cache.file': "${buildDir}/checkstyle/cachefile" + ] +} + repositories { mavenCentral() } diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml new file mode 100644 index 000000000..5906505ca --- /dev/null +++ b/config/checkstyle/checkstyle.xml @@ -0,0 +1,448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 8184261d416ebf72053b0ba9e15fd22b4a9cc65f Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Fri, 25 Apr 2025 11:35:01 +0530 Subject: [PATCH 03/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d10264786..9397700ba 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -54,8 +54,8 @@ pipeline{ def imageTag = env.BRANCH_NAME == 'main' ? 'latest' : GIT_COMMIT_SHORT sh """ echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin $REGISTRY_URL - docker tag $REGISTRY_URL/$(IMAGE_NAME):${imageTag} $REGISTRY_URL/${targetRepo}/${IMAGE_NAME}:${imageTag} - docker push $REGISTRY_URL/${targetRepo}/${IMAGE_NAME}:${imageTag} + docker tag $REGISTRY_URL/$IMAGE_NAME:$imageTag $REGISTRY_URL/$targetRepo/$IMAGE_NAME:$imageTag + docker push $REGISTRY_URL/$targetRepo/$IMAGE_NAME:$imageTag """ } } From 8c3f54565113745ba73ce7690a606bb5ad21e384 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Fri, 25 Apr 2025 12:18:36 +0530 Subject: [PATCH 04/42] Update checkstyle.xml Signed-off-by: prankumargrid --- config/checkstyle/checkstyle.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index 5906505ca..e46f356d8 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -8,7 +8,7 @@ that can be found at https://google.github.io/styleguide/javaguide.html Checkstyle is very configurable. Be sure to read the documentation at - http://checkstyle.org (or in your downloaded distribution). + https://checkstyle.org (or in your downloaded distribution). To completely disable a check, just comment it out or delete it from the file. To suppress certain violations please review suppression filters. @@ -47,7 +47,7 @@ - + From cab11b2f6012cd79312e486305af436fc57e28c7 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Fri, 25 Apr 2025 12:41:58 +0530 Subject: [PATCH 05/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 9397700ba..d9b904449 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,6 +2,7 @@ pipeline{ agent any environment{ + imageTag = "latest" REGISTRY_URL = "https://hub.docker.com/repositories/prankumar313" IMAGE_NAME = "spring-petclinic" GIT_COMMIT_SHORT = "${env.GIT_COMMIT[0..6]}" From e0b343eb1b5178cc4d47f9309c777c87976d0250 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Fri, 25 Apr 2025 12:51:04 +0530 Subject: [PATCH 06/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d9b904449..9b50194d9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,7 +43,7 @@ pipeline{ steps{ script{ def ImageTag = env.BRANCH_NAME == 'main' ? 'latest' : GIT_COMMIT_SHORT - sh "docker build -t $REGISTRY_URL/${IMAGE_NAME}:${imageTag} ." + sh "docker build -t $REGISTRY_URL/$IMAGE_NAME:$imageTag ." } } } From b1861babf7e0176704535e6179a80de4707eefb3 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Fri, 25 Apr 2025 13:07:07 +0530 Subject: [PATCH 07/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9b50194d9..f1e3810f5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,7 +43,7 @@ pipeline{ steps{ script{ def ImageTag = env.BRANCH_NAME == 'main' ? 'latest' : GIT_COMMIT_SHORT - sh "docker build -t $REGISTRY_URL/$IMAGE_NAME:$imageTag ." + sh "docker build -t www.github.com/prankumargrid/$IMAGE_NAME:$imageTag ." } } } From ab0a17732e5369f0822f0f91abc362ad6cf0a572 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Fri, 25 Apr 2025 13:10:08 +0530 Subject: [PATCH 08/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index f1e3810f5..47e25aed4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,5 +1,10 @@ pipeline{ - agent any + agent { + docker { + image 'docker:24.0.5-dind' // Or use another version + args '--privileged' // Required to run Docker inside Docker + } + } environment{ imageTag = "latest" From 0e7ad0984eee0605f07ddb602a6fac2b4c3e9c67 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Tue, 29 Apr 2025 12:12:30 +0530 Subject: [PATCH 09/42] Update Dockerfile Signed-off-by: prankumargrid --- Dockerfile | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index dbf03a32b..1498384e2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,9 @@ -FROM eclipse-temurin:17-jdk-alpine -COPY build/libs/*.jar app.jar -ENTRYPOINT ["java", "-jar", "/app.jar"] +FROM gradle:8.5-jdk17 as builder +COPY . /app +WORKDIR /app +RUN gradle build -x test + +FROM eclipse-temurin:17-jre-alpine +WORKDIR/app +COPY --from=builder /app/build/libs/spring-petclinic-*.jar app.jar +ENTRYPOINT ["java", "-jar", "app.jar"] From 8d18fa01ddf0724b4249bd7c1f0fc65cfc65d9d0 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Tue, 29 Apr 2025 12:13:30 +0530 Subject: [PATCH 10/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 130 ++++++++++++++++++++++++++-------------------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 47e25aed4..334d1e30b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,71 +1,71 @@ -pipeline{ - agent { - docker { - image 'docker:24.0.5-dind' // Or use another version - args '--privileged' // Required to run Docker inside Docker - } +pipeline { + agent any + + environment { + IMAGE_TAG = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() + REGISTRY = "your-dockerhub-username" // Or Nexus repo URL } - environment{ - imageTag = "latest" - REGISTRY_URL = "https://hub.docker.com/repositories/prankumar313" - IMAGE_NAME = "spring-petclinic" - GIT_COMMIT_SHORT = "${env.GIT_COMMIT[0..6]}" - } - - stages{ - stage('Checkstyle'){ - when{ - not{ - branch 'main' + stages { + stage('Check Branch') { + steps { + script { + if (env.BRANCH_NAME == 'main') { + currentBuild.description = "Main branch build" + buildMainPipeline() + } else { + currentBuild.description = "Merge request build" + buildMRPipeline() + } + } + } } - } - steps{ - sh './gradlew checkstyleMain' - archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true - } } - - stage('Test'){ - when{ - not{ - branch 'main' - } - } - steps{ - sh './gradlew test' - junit '**/build/test-results/test/*.xml' - } - } - - stage('Build'){ - steps{ - sh './gradlew clean build -x test' - } - } - - stage('Build Docker Image'){ - steps{ - script{ - def ImageTag = env.BRANCH_NAME == 'main' ? 'latest' : GIT_COMMIT_SHORT - sh "docker build -t www.github.com/prankumargrid/$IMAGE_NAME:$imageTag ." - } - } - } - - stage('Push Docker Image'){ - steps{ - script{ - def targetRepo = env.BRANCH_NAME == 'main' ? 'main' : 'mr' - def imageTag = env.BRANCH_NAME == 'main' ? 'latest' : GIT_COMMIT_SHORT - sh """ - echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin $REGISTRY_URL - docker tag $REGISTRY_URL/$IMAGE_NAME:$imageTag $REGISTRY_URL/$targetRepo/$IMAGE_NAME:$imageTag - docker push $REGISTRY_URL/$targetRepo/$IMAGE_NAME:$imageTag - """ - } - } - } - } } +def buildMainPipeline() { + stage('Docker Build and Push') { + steps { + script { + docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { + def app = docker.build("${env.REGISTRY}/main:${env.IMAGE_TAG}") + app.push() + } + } + } + } +} + +def buildMRPipeline() { + stage('Checkstyle') { + steps { + sh 'gradle checkstyleMain checkstyleTest' + archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true + } + } + + stage('Test') { + steps { + sh 'gradle test' + } + } + + stage('Build (No Tests)') { + steps { + sh 'gradle build -x test' + } + } + + stage('Docker Build and Push') { + steps { + script { + docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { + def app = docker.build("${env.REGISTRY}/mr:${env.IMAGE_TAG}") + app.push() + } + } + } + } +} + + From 00e590de05539e2c6ab897a953e90dcf5b92c570 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Tue, 29 Apr 2025 12:20:05 +0530 Subject: [PATCH 11/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 50 +++++++++++++++++++------------------------------- 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 334d1e30b..2c71c4c32 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,15 +8,13 @@ pipeline { stages { stage('Check Branch') { - steps { - script { - if (env.BRANCH_NAME == 'main') { - currentBuild.description = "Main branch build" - buildMainPipeline() - } else { - currentBuild.description = "Merge request build" - buildMRPipeline() - } + script { + if (env.BRANCH_NAME == 'main') { + currentBuild.description = "Main branch build" + buildMainPipeline() + } else { + currentBuild.description = "Merge request build" + buildMRPipeline() } } } @@ -25,12 +23,10 @@ pipeline { def buildMainPipeline() { stage('Docker Build and Push') { - steps { - script { - docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { - def app = docker.build("${env.REGISTRY}/main:${env.IMAGE_TAG}") - app.push() - } + script { + docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { + def app = docker.build("${env.REGISTRY}/main:${env.IMAGE_TAG}") + app.push() } } } @@ -38,31 +34,23 @@ def buildMainPipeline() { def buildMRPipeline() { stage('Checkstyle') { - steps { - sh 'gradle checkstyleMain checkstyleTest' - archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true - } + sh 'gradle checkstyleMain checkstyleTest' + archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true } stage('Test') { - steps { - sh 'gradle test' - } + sh 'gradle test' } stage('Build (No Tests)') { - steps { - sh 'gradle build -x test' - } + sh 'gradle build -x test' } stage('Docker Build and Push') { - steps { - script { - docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { - def app = docker.build("${env.REGISTRY}/mr:${env.IMAGE_TAG}") - app.push() - } + script { + docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { + def app = docker.build("${env.REGISTRY}/mr:${env.IMAGE_TAG}") + app.push() } } } From 0831c86fbc4a625d097977c6924bfa953650e256 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Tue, 29 Apr 2025 12:47:20 +0530 Subject: [PATCH 12/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 75 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 23 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2c71c4c32..29e586889 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,19 +2,31 @@ pipeline { agent any environment { - IMAGE_TAG = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() - REGISTRY = "your-dockerhub-username" // Or Nexus repo URL + IMAGE_TAG = '' // We'll set this inside steps + REGISTRY = "your-dockerhub-username" // Replace with your actual DockerHub username or Nexus repo } stages { + stage('Initialize') { + steps { + script { + IMAGE_TAG = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() + env.IMAGE_TAG = IMAGE_TAG // Save it to env for next stages + echo "Image tag is: ${env.IMAGE_TAG}" + } + } + } + stage('Check Branch') { - script { - if (env.BRANCH_NAME == 'main') { - currentBuild.description = "Main branch build" - buildMainPipeline() - } else { - currentBuild.description = "Merge request build" - buildMRPipeline() + steps { + script { + if (env.BRANCH_NAME == 'main') { + currentBuild.description = "Main branch build" + buildMainPipeline() + } else { + currentBuild.description = "Merge request build" + buildMRPipeline() + } } } } @@ -22,11 +34,13 @@ pipeline { } def buildMainPipeline() { - stage('Docker Build and Push') { - script { - docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { - def app = docker.build("${env.REGISTRY}/main:${env.IMAGE_TAG}") - app.push() + stage('Docker Build and Push for Main') { + steps { + script { + docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { + def app = docker.build("${env.REGISTRY}/main:${env.IMAGE_TAG}") + app.push() + } } } } @@ -34,26 +48,41 @@ def buildMainPipeline() { def buildMRPipeline() { stage('Checkstyle') { - sh 'gradle checkstyleMain checkstyleTest' - archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true + steps { + script { + sh 'gradle checkstyleMain checkstyleTest' + archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true + } + } } stage('Test') { - sh 'gradle test' + steps { + script { + sh 'gradle test' + } + } } stage('Build (No Tests)') { - sh 'gradle build -x test' + steps { + script { + sh 'gradle build -x test' + } + } } - stage('Docker Build and Push') { - script { - docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { - def app = docker.build("${env.REGISTRY}/mr:${env.IMAGE_TAG}") - app.push() + stage('Docker Build and Push for MR') { + steps { + script { + docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { + def app = docker.build("${env.REGISTRY}/mr:${env.IMAGE_TAG}") + app.push() + } } } } } + From 2bb02afc994c4519ecf4dca138ffc5a3195d3138 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Tue, 29 Apr 2025 12:51:16 +0530 Subject: [PATCH 13/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 29e586889..c4fb25f37 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { stage('Initialize') { steps { script { - IMAGE_TAG = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() + def IMAGE_TAG = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() env.IMAGE_TAG = IMAGE_TAG // Save it to env for next stages echo "Image tag is: ${env.IMAGE_TAG}" } From d85042cdf5a098286edbe0cde29de32bf04f75bc Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Tue, 29 Apr 2025 12:57:48 +0530 Subject: [PATCH 14/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 74 ++++++----------------------------------------------- 1 file changed, 8 insertions(+), 66 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c4fb25f37..08b0f3419 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,87 +2,29 @@ pipeline { agent any environment { - IMAGE_TAG = '' // We'll set this inside steps - REGISTRY = "your-dockerhub-username" // Replace with your actual DockerHub username or Nexus repo + IMAGE_TAG = '' // Will be set in 'Initialize' + REGISTRY = "your-dockerhub-username" // Replace with actual DockerHub or Nexus repo } stages { stage('Initialize') { steps { script { - def IMAGE_TAG = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() - env.IMAGE_TAG = IMAGE_TAG // Save it to env for next stages + env.IMAGE_TAG = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() echo "Image tag is: ${env.IMAGE_TAG}" } } } - stage('Check Branch') { + stage('Branch Specific Pipeline') { steps { script { if (env.BRANCH_NAME == 'main') { currentBuild.description = "Main branch build" - buildMainPipeline() - } else { - currentBuild.description = "Merge request build" - buildMRPipeline() - } - } - } - } - } -} - -def buildMainPipeline() { - stage('Docker Build and Push for Main') { - steps { - script { - docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { - def app = docker.build("${env.REGISTRY}/main:${env.IMAGE_TAG}") - app.push() - } - } - } - } -} - -def buildMRPipeline() { - stage('Checkstyle') { - steps { - script { - sh 'gradle checkstyleMain checkstyleTest' - archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true - } - } - } - - stage('Test') { - steps { - script { - sh 'gradle test' - } - } - } - - stage('Build (No Tests)') { - steps { - script { - sh 'gradle build -x test' - } - } - } - - stage('Docker Build and Push for MR') { - steps { - script { - docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { - def app = docker.build("${env.REGISTRY}/mr:${env.IMAGE_TAG}") - app.push() - } - } - } - } -} + + // Main branch: Just build and push image + docker.withRegistry(' + From 86268d9daf8a90c19507a90c74e91d769a7d7531 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Tue, 29 Apr 2025 13:03:58 +0530 Subject: [PATCH 15/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 08b0f3419..395e854e7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,7 +3,7 @@ pipeline { environment { IMAGE_TAG = '' // Will be set in 'Initialize' - REGISTRY = "your-dockerhub-username" // Replace with actual DockerHub or Nexus repo + REGISTRY = "prankumar313" // Replace with actual DockerHub or Nexus repo } stages { From 77c31d5b04530c52e013a471747b1aa989c22156 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Tue, 29 Apr 2025 13:05:37 +0530 Subject: [PATCH 16/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 395e854e7..5f4455840 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,7 +3,7 @@ pipeline { environment { IMAGE_TAG = '' // Will be set in 'Initialize' - REGISTRY = "prankumar313" // Replace with actual DockerHub or Nexus repo + REGISTRY = "your-dockerhub-username" // Replace with actual DockerHub or Nexus repo } stages { @@ -23,8 +23,28 @@ pipeline { currentBuild.description = "Main branch build" // Main branch: Just build and push image - docker.withRegistry(' - + docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { + def app = docker.build("${env.REGISTRY}/main:${env.IMAGE_TAG}") + app.push() + } + } else { + currentBuild.description = "Merge request build" + + // MR branch: Full build + sh 'gradle checkstyleMain checkstyleTest' + archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true + sh 'gradle test' + sh 'gradle build -x test' + docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { + def app = docker.build("${env.REGISTRY}/mr:${env.IMAGE_TAG}") + app.push() + } + } + } + } + } + } +} From 03ac881783244f4ff10cea01c4778a036851e70c Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Wed, 30 Apr 2025 10:34:22 +0530 Subject: [PATCH 17/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 79 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 29 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5f4455840..e8e91c6ca 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,47 +2,68 @@ pipeline { agent any environment { - IMAGE_TAG = '' // Will be set in 'Initialize' - REGISTRY = "your-dockerhub-username" // Replace with actual DockerHub or Nexus repo + DOCKERHUB_CREDENTIALS = credentials('dockerhub-credentials') + IMAGE_NAME_MAIN = "prankumar313/main" + IMAGE_NAME_MR = "prankumar313/mr" } stages { - stage('Initialize') { + stage('Check Git Branch') { steps { script { - env.IMAGE_TAG = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() - echo "Image tag is: ${env.IMAGE_TAG}" + BRANCH_NAME = env.BRANCH_NAME ?: sh(script: 'git rev-parse --abbrev-ref HEAD', returnStdout: true).trim() + IS_MR = BRANCH_NAME != 'main' + COMMIT_HASH = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() } } } - stage('Branch Specific Pipeline') { + stage('Checkstyle') { + when { + expression { IS_MR } + } + steps { + sh './gradlew checkstyleMain' + } + post { + always { + archiveArtifacts artifacts: 'build/reports/checkstyle/*.html', allowEmptyArchive: true + } + } + } + + stage('Test') { + when { + expression { IS_MR } + } + steps { + sh './gradlew test' + } + } + + stage('Build') { + when { + expression { IS_MR } + } + steps { + sh './gradlew build -x test' + } + } + + stage('Build Docker Image') { steps { script { - if (env.BRANCH_NAME == 'main') { - currentBuild.description = "Main branch build" - - // Main branch: Just build and push image - docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { - def app = docker.build("${env.REGISTRY}/main:${env.IMAGE_TAG}") - app.push() - } + IMAGE_TAG = "${IS_MR ? IMAGE_NAME_MR : IMAGE_NAME_MAIN}:${COMMIT_HASH}" + sh "docker buildx build -t ${IMAGE_TAG} ." + } + } + } - } else { - currentBuild.description = "Merge request build" - - // MR branch: Full build - sh 'gradle checkstyleMain checkstyleTest' - archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true - - sh 'gradle test' - sh 'gradle build -x test' - - docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials-id') { - def app = docker.build("${env.REGISTRY}/mr:${env.IMAGE_TAG}") - app.push() - } - } + stage('Push Docker Image') { + steps { + script { + sh "echo ${DOCKERHUB_CREDENTIALS_PSW} | docker login -u ${DOCKERHUB_CREDENTIALS_USR} --password-stdin" + sh "docker push ${IMAGE_TAG}" } } } From 8ce35bef8d2b15e5069ba213d32e2e54a0c9a2a3 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Wed, 30 Apr 2025 15:13:43 +0530 Subject: [PATCH 18/42] Update Dockerfile Signed-off-by: prankumargrid --- Dockerfile | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1498384e2..87091a033 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,8 @@ -FROM gradle:8.5-jdk17 as builder -COPY . /app -WORKDIR /app -RUN gradle build -x test +FROM openjdk:17-jdk-slim + +WORKDIR /app +COPY build/libs/*.jar app.jar + +EXPOSE 8080 -FROM eclipse-temurin:17-jre-alpine -WORKDIR/app -COPY --from=builder /app/build/libs/spring-petclinic-*.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"] From ea795ed756f90e02db9c2b5c3b4f2c86abb004f6 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Wed, 30 Apr 2025 15:15:29 +0530 Subject: [PATCH 19/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 111 +++++++++++++++++++++------------------------------- 1 file changed, 45 insertions(+), 66 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e8e91c6ca..ef62886fc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,71 +1,50 @@ pipeline { - agent any - - environment { - DOCKERHUB_CREDENTIALS = credentials('dockerhub-credentials') - IMAGE_NAME_MAIN = "prankumar313/main" - IMAGE_NAME_MR = "prankumar313/mr" + agent any + environment { + DOCKER_IMAGE = "prankumar313" + COMMIT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() + } + stages { + stage('Checkstyle') { + when { + not { branch 'main' } + } + steps { + sh './gradlew checkstyleMain checkstyleTest' + archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true + } } - stages { - stage('Check Git Branch') { - steps { - script { - BRANCH_NAME = env.BRANCH_NAME ?: sh(script: 'git rev-parse --abbrev-ref HEAD', returnStdout: true).trim() - IS_MR = BRANCH_NAME != 'main' - COMMIT_HASH = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() - } - } - } - - stage('Checkstyle') { - when { - expression { IS_MR } - } - steps { - sh './gradlew checkstyleMain' - } - post { - always { - archiveArtifacts artifacts: 'build/reports/checkstyle/*.html', allowEmptyArchive: true - } - } - } - - stage('Test') { - when { - expression { IS_MR } - } - steps { - sh './gradlew test' - } - } - - stage('Build') { - when { - expression { IS_MR } - } - steps { - sh './gradlew build -x test' - } - } - - stage('Build Docker Image') { - steps { - script { - IMAGE_TAG = "${IS_MR ? IMAGE_NAME_MR : IMAGE_NAME_MAIN}:${COMMIT_HASH}" - sh "docker buildx build -t ${IMAGE_TAG} ." - } - } - } - - stage('Push Docker Image') { - steps { - script { - sh "echo ${DOCKERHUB_CREDENTIALS_PSW} | docker login -u ${DOCKERHUB_CREDENTIALS_USR} --password-stdin" - sh "docker push ${IMAGE_TAG}" - } - } - } + stage('Test') { + when { + not { branch 'main' } + } + steps { + sh './gradlew test' + } } + + stage('Build (No Tests)') { + when { + not { branch 'main' } + } + steps { + sh './gradlew build -x test' + } + } + + stage('Build Docker Image') { + steps { + script { + def tag = BRANCH_NAME == 'main' ? 'latest' : "${COMMIT}" + def repo = BRANCH_NAME == 'main' ? "${DOCKER_IMAGE}-main" : "${DOCKER_IMAGE}-mr" + sh "docker build -t ${repo}:${tag} ." + withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { + sh "echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin" + sh "docker push ${repo}:${tag}" + } + } + } + } + } } From 9bc6c07062f7843dac52777b5ec27df1a43669a1 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Thu, 1 May 2025 15:57:44 +0530 Subject: [PATCH 20/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index ef62886fc..cffc25a26 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,4 +1,10 @@ pipeline { + agent { + docker { + image 'gradle:8.1.1-jdk17' + args '-v /var/run/docker.sock:/var/run/docker.sock' + } + } agent any environment { DOCKER_IMAGE = "prankumar313" From 9344fdd0f853ce30a2a2ebb19a5b0c50a6520903 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Thu, 1 May 2025 15:59:27 +0530 Subject: [PATCH 21/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index cffc25a26..9b44861c7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -11,6 +11,14 @@ pipeline { COMMIT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() } stages { + stage('Install Docker') { + steps { + sh ''' + apt-get update + apt-get install -y docker.io + ''' + } + } stage('Checkstyle') { when { not { branch 'main' } From 5aeb5e731c5d96abbd3fd391ab42a95ee97d1a07 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Thu, 1 May 2025 16:00:40 +0530 Subject: [PATCH 22/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9b44861c7..6b92a43cd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -52,7 +52,7 @@ pipeline { script { def tag = BRANCH_NAME == 'main' ? 'latest' : "${COMMIT}" def repo = BRANCH_NAME == 'main' ? "${DOCKER_IMAGE}-main" : "${DOCKER_IMAGE}-mr" - sh "docker build -t ${repo}:${tag} ." + sh "docker buildx build -t ${repo}:${tag} ." withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { sh "echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin" sh "docker push ${repo}:${tag}" From fc1cf550be748162aa18a32bbfcdaf06455ae046 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Thu, 1 May 2025 16:06:20 +0530 Subject: [PATCH 23/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6b92a43cd..10f046650 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,11 +1,10 @@ pipeline { - agent { - docker { - image 'gradle:8.1.1-jdk17' - args '-v /var/run/docker.sock:/var/run/docker.sock' - } - } + age agent any + docker { + image 'gradle:8.1.1-jdk17' + args '-v /var/run/docker.sock:/var/run/docker.sock' + } environment { DOCKER_IMAGE = "prankumar313" COMMIT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() From af1abda6f3e91b6733ba3d9b8acd5cd0dc291b2a Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Thu, 1 May 2025 16:07:37 +0530 Subject: [PATCH 24/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 10f046650..1081ecf9d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,5 +1,4 @@ pipeline { - age agent any docker { image 'gradle:8.1.1-jdk17' From 96c8f864d0f03416df2877a1cffe92331f72b321 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Thu, 1 May 2025 16:11:19 +0530 Subject: [PATCH 25/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 68 ++++++++++++++++++++--------------------------------- 1 file changed, 25 insertions(+), 43 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1081ecf9d..5dd9d0ddd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,60 +1,42 @@ pipeline { - agent any - docker { - image 'gradle:8.1.1-jdk17' - args '-v /var/run/docker.sock:/var/run/docker.sock' + agent { + docker { + image 'gradle:8.1.1-jdk17' + args '-v /var/run/docker.sock:/var/run/docker.sock' + } } + environment { - DOCKER_IMAGE = "prankumar313" - COMMIT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() + IMAGE_NAME = 'prankumar313-main' } + stages { - stage('Install Docker') { + stage('Install Docker CLI') { steps { sh ''' - apt-get update - apt-get install -y docker.io + apt-get update + apt-get install -y docker.io ''' } } - stage('Checkstyle') { - when { - not { branch 'main' } - } - steps { - sh './gradlew checkstyleMain checkstyleTest' - archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true - } - } - - stage('Test') { - when { - not { branch 'main' } - } - steps { - sh './gradlew test' - } - } - - stage('Build (No Tests)') { - when { - not { branch 'main' } - } - steps { - sh './gradlew build -x test' - } - } stage('Build Docker Image') { steps { script { - def tag = BRANCH_NAME == 'main' ? 'latest' : "${COMMIT}" - def repo = BRANCH_NAME == 'main' ? "${DOCKER_IMAGE}-main" : "${DOCKER_IMAGE}-mr" - sh "docker buildx build -t ${repo}:${tag} ." - withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { - sh "echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin" - sh "docker push ${repo}:${tag}" - } + COMMIT = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() + sh "docker build -t ${IMAGE_NAME}:${COMMIT} ." + } + } + } + + stage('Push to Docker Hub') { + steps { + withCredentials([usernamePassword(credentialsId: 'dockerhub-creds', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { + sh ''' + echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin + docker tag ${IMAGE_NAME}:${COMMIT} ${DOCKER_USER}/${IMAGE_NAME}:${COMMIT} + docker push ${DOCKER_USER}/${IMAGE_NAME}:${COMMIT} + ''' } } } From d2f5f2445d0004060d42f3de72bbf1732a51e5ce Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Thu, 1 May 2025 16:15:21 +0530 Subject: [PATCH 26/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 61 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 13 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5dd9d0ddd..685deae9a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,7 +7,8 @@ pipeline { } environment { - IMAGE_NAME = 'prankumar313-main' + IMAGE_NAME = "spring-petclinic" + DOCKERHUB_USER = "prankumar313" // Change to your Docker Hub username } stages { @@ -16,29 +17,63 @@ pipeline { sh ''' apt-get update apt-get install -y docker.io + docker --version ''' } } - stage('Build Docker Image') { + stage('Checkstyle') { + when { + expression { env.BRANCH_NAME != 'main' } + } steps { - script { - COMMIT = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() - sh "docker build -t ${IMAGE_NAME}:${COMMIT} ." - } + sh './gradlew checkstyleMain checkstyleTest' + archiveArtifacts artifacts: '**/build/reports/checkstyle/*.xml', allowEmptyArchive: true } } - stage('Push to Docker Hub') { + stage('Test') { + when { + expression { env.BRANCH_NAME != 'main' } + } steps { - withCredentials([usernamePassword(credentialsId: 'dockerhub-creds', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { - sh ''' - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin - docker tag ${IMAGE_NAME}:${COMMIT} ${DOCKER_USER}/${IMAGE_NAME}:${COMMIT} - docker push ${DOCKER_USER}/${IMAGE_NAME}:${COMMIT} - ''' + sh './gradlew test' + } + } + + stage('Build (No Tests)') { + when { + expression { env.BRANCH_NAME != 'main' } + } + steps { + sh './gradlew build -x test' + } + } + + stage('Build & Push Docker Image') { + steps { + script { + COMMIT = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() + IMAGE_TAG = "${DOCKERHUB_USER}/${env.BRANCH_NAME == 'main' ? 'main' : 'mr'}:${COMMIT}" + + sh """ + docker build -t ${IMAGE_TAG} . + """ + + withCredentials([usernamePassword(credentialsId: 'dockerhub-creds', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { + sh """ + echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin + docker push ${IMAGE_TAG} + """ + } } } } } + + post { + always { + cleanWs() + } + } } From 6ab564548771bbfec04df80d99e9beef17cfcc35 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Thu, 1 May 2025 16:28:57 +0530 Subject: [PATCH 27/42] Update Jenkinsfile Signed-off-by: prankumargrid --- Jenkinsfile | 53 +++++++++++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 30 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 685deae9a..d34dbf2fa 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,28 +1,17 @@ pipeline { - agent { - docker { - image 'gradle:8.1.1-jdk17' - args '-v /var/run/docker.sock:/var/run/docker.sock' - } - } + agent none environment { - IMAGE_NAME = "spring-petclinic" - DOCKERHUB_USER = "prankumar313" // Change to your Docker Hub username + DOCKERHUB_USER = "prankumar313" } stages { - stage('Install Docker CLI') { - steps { - sh ''' - apt-get update - apt-get install -y docker.io - docker --version - ''' - } - } - stage('Checkstyle') { + agent { + docker { + image 'gradle:8.1.1-jdk17' + } + } when { expression { env.BRANCH_NAME != 'main' } } @@ -33,6 +22,11 @@ pipeline { } stage('Test') { + agent { + docker { + image 'gradle:8.1.1-jdk17' + } + } when { expression { env.BRANCH_NAME != 'main' } } @@ -42,6 +36,11 @@ pipeline { } stage('Build (No Tests)') { + agent { + docker { + image 'gradle:8.1.1-jdk17' + } + } when { expression { env.BRANCH_NAME != 'main' } } @@ -51,29 +50,23 @@ pipeline { } stage('Build & Push Docker Image') { + agent { label 'docker-enabled' } // runs on a node with Docker installed steps { script { - COMMIT = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() - IMAGE_TAG = "${DOCKERHUB_USER}/${env.BRANCH_NAME == 'main' ? 'main' : 'mr'}:${COMMIT}" + def commit = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() + def repo = env.BRANCH_NAME == 'main' ? 'main' : 'mr' + def image = "${DOCKERHUB_USER}/${repo}:${commit}" - sh """ - docker build -t ${IMAGE_TAG} . - """ + sh "docker build -t ${image} ." withCredentials([usernamePassword(credentialsId: 'dockerhub-creds', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { sh """ echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin - docker push ${IMAGE_TAG} + docker push ${image} """ } } } } } - - post { - always { - cleanWs() - } - } } From 5ce47b026b1dd76829bcdf26a7debf9c0c12c773 Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Mon, 16 Jun 2025 14:29:48 +0530 Subject: [PATCH 28/42] Added Workflow --- .github/workflows/java.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/java.yml diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml new file mode 100644 index 000000000..b344d975f --- /dev/null +++ b/.github/workflows/java.yml @@ -0,0 +1,21 @@ +name: Java CI with Gradle + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: ๐Ÿ“ฅ Checkout code + uses: actions/checkout@v4 + + - name: โ˜• Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: ๐Ÿ“ฆ Build with Gradle + run: ./gradlew build + From 067e66e2fa7e490e6847802676a103fb02b3b87c Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Mon, 16 Jun 2025 18:00:26 +0530 Subject: [PATCH 29/42] Added Docker workflow --- .github/workflows/docker-build.yml | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/docker-build.yml diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 000000000..879ef648c --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,35 @@ +name: Build and Push Docker Image + +on: + push: + branches: [ main ] + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: ๐Ÿงพ Checkout Code + uses: actions/checkout@v4 + + - name: โ˜• Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: ๐Ÿงฑ Build with Gradle + run: ./gradlew build + + - name: ๐Ÿ” Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: ๐Ÿณ Build and Tag Docker Image + run: docker build -t ${{ secrets.DOCKER_USERNAME }}/spring-petclinic:latest . + + - name: ๐Ÿš€ Push Docker Image + run: docker push ${{ secrets.DOCKER_USERNAME }}/spring-petclinic:latest + From 87296dcaad1cfb5e30f0393537b03deab5d075c9 Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Mon, 16 Jun 2025 18:22:39 +0530 Subject: [PATCH 30/42] Trigger build From 7d6b6fc4c54168a5f096526fe4c02bc70e987908 Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Mon, 16 Jun 2025 18:35:28 +0530 Subject: [PATCH 31/42] Add matrix build for Java versions --- .github/workflows/build-matrix.yaml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/build-matrix.yaml diff --git a/.github/workflows/build-matrix.yaml b/.github/workflows/build-matrix.yaml new file mode 100644 index 000000000..f4e386b37 --- /dev/null +++ b/.github/workflows/build-matrix.yaml @@ -0,0 +1,26 @@ +name: Java CI Matrix Build + +on: [push, pull_request] + +jobs: + build: + runs_on: ubuntu-latest + + strategy: + matrix: + java: [8, 11, 17] + + name: Build with Java ${{ matrix.java }} + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Set up Java ${{ matrix.java }} + uses: actions/setup-java@4 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + + - name: Build with Gradle + run: ./gradlew build From dda265e7761b9ffc65ce6f470b0fd347e1d6b37d Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Mon, 16 Jun 2025 18:37:50 +0530 Subject: [PATCH 32/42] Trigger build From cc53c6223e7e79be6c404caa1217cf920cfa5490 Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Mon, 16 Jun 2025 18:38:08 +0530 Subject: [PATCH 33/42] Build Commit --- .github/workflows/build-matrix.yaml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build-matrix.yaml b/.github/workflows/build-matrix.yaml index f4e386b37..bff7654fb 100644 --- a/.github/workflows/build-matrix.yaml +++ b/.github/workflows/build-matrix.yaml @@ -6,21 +6,21 @@ jobs: build: runs_on: ubuntu-latest - strategy: - matrix: - java: [8, 11, 17] + strategy: + matrix: + java: [8, 11, 17] - name: Build with Java ${{ matrix.java }} + name: Build with Java ${{ matrix.java }} - steps: - - name: Checkout Code - uses: actions/checkout@v4 + steps: + - name: Checkout Code + uses: actions/checkout@v4 - - name: Set up Java ${{ matrix.java }} - uses: actions/setup-java@4 - with: - distribution: 'temurin' - java-version: ${{ matrix.java }} + - name: Set up Java ${{ matrix.java }} + uses: actions/setup-java@4 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} - - name: Build with Gradle - run: ./gradlew build + - name: Build with Gradle + run: ./gradlew build From 96d3f4015d45178e7cf2c242a55808b7ec2398f8 Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Mon, 16 Jun 2025 18:39:29 +0530 Subject: [PATCH 34/42] Next Build Commit --- .github/workflows/build-matrix.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-matrix.yaml b/.github/workflows/build-matrix.yaml index bff7654fb..a190ed480 100644 --- a/.github/workflows/build-matrix.yaml +++ b/.github/workflows/build-matrix.yaml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: build: - runs_on: ubuntu-latest + runs-on: ubuntu-latest strategy: matrix: From 94c1e6084ff00698efb54e6869e6db2083c756b0 Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Mon, 16 Jun 2025 18:41:38 +0530 Subject: [PATCH 35/42] Test Build Commit --- .github/workflows/build-matrix.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-matrix.yaml b/.github/workflows/build-matrix.yaml index a190ed480..a391ae4b3 100644 --- a/.github/workflows/build-matrix.yaml +++ b/.github/workflows/build-matrix.yaml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v4 - name: Set up Java ${{ matrix.java }} - uses: actions/setup-java@4 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: ${{ matrix.java }} From bee512426ebcfccbe140c65bd532b3d9b8750264 Mon Sep 17 00:00:00 2001 From: prankumargrid Date: Mon, 16 Jun 2025 18:47:55 +0530 Subject: [PATCH 36/42] Update build-matrix.yaml Signed-off-by: prankumargrid --- .github/workflows/build-matrix.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-matrix.yaml b/.github/workflows/build-matrix.yaml index a391ae4b3..e0aad3c21 100644 --- a/.github/workflows/build-matrix.yaml +++ b/.github/workflows/build-matrix.yaml @@ -8,7 +8,7 @@ jobs: strategy: matrix: - java: [8, 11, 17] + java: [17, 21] name: Build with Java ${{ matrix.java }} From d046b63928196b692cc129e57c5a27c7f0de1c1e Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Mon, 16 Jun 2025 19:06:13 +0530 Subject: [PATCH 37/42] Multi Job Pipeline --- .github/workflows/multi-job.yaml | 62 ++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/workflows/multi-job.yaml diff --git a/.github/workflows/multi-job.yaml b/.github/workflows/multi-job.yaml new file mode 100644 index 000000000..c078c1952 --- /dev/null +++ b/.github/workflows/multi-job.yaml @@ -0,0 +1,62 @@ +name: Multi-Job CI/CD Pipeline + +on: [push, pull_request] + +jobs: + test: + name: Run Tests + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Java 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 17 + + - name: Make Gradle executable + run: chmod +x ./gradlew + + - name: Run Tests + run: ./gradlew test + + build: + name: Build App + runs-on: ubuntu-latest + needs: test + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Java 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 17 + + - name: Make Gradle executable + run: chmod +x ./gradlew + + - name: Build App + run: ./gradlew build + + docker_push: + name: Push to Docker Hub + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Docker Hub Login + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and Push Docker Image + run: | + docker build -t ${{ secrets.DOCKER_USERNAME }}/spring-petclinic:latest . + docker push ${{ secrets.DOCKER_USERNAME }}/spring-petclinic:latest From 147a8b4893fda034fd81f99cb2e946cc61623be8 Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Tue, 17 Jun 2025 10:11:50 +0530 Subject: [PATCH 38/42] Multistage build --- .github/workflows/multi-job.yaml | 3 --- Dockerfile | 10 ++++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/multi-job.yaml b/.github/workflows/multi-job.yaml index c078c1952..01e291fff 100644 --- a/.github/workflows/multi-job.yaml +++ b/.github/workflows/multi-job.yaml @@ -39,9 +39,6 @@ jobs: - name: Make Gradle executable run: chmod +x ./gradlew - - name: Build App - run: ./gradlew build - docker_push: name: Push to Docker Hub runs-on: ubuntu-latest diff --git a/Dockerfile b/Dockerfile index 87091a033..1259a8a93 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,10 @@ -FROM openjdk:17-jdk-slim - +FROM gradle:8.10.2-jdk17 AS build WORKDIR /app -COPY build/libs/*.jar app.jar +COPY . . +RUN gradle build --no-daemon +FROM eclipse-temurin:17-jdk +WORKDIR /app +COPY --from=build /app/build/libs/*.jar app.jar EXPOSE 8080 - ENTRYPOINT ["java", "-jar", "app.jar"] From f75ad7eb379661ccd61450d41148724c4fb9a0b2 Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Wed, 18 Jun 2025 22:49:14 +0530 Subject: [PATCH 39/42] CI/CD Pipeline --- .github/workflows/build-matrix.yaml | 26 ----- .github/workflows/ci-cd.yaml | 94 +++++++++++++++++++ .github/workflows/deploy-and-test-cluster.yml | 31 ------ .github/workflows/docker-build.yml | 35 ------- .github/workflows/gradle-build.yml | 31 ------ .github/workflows/java.yml | 21 ----- .github/workflows/maven-build.yml | 29 ------ .github/workflows/multi-job.yaml | 59 ------------ 8 files changed, 94 insertions(+), 232 deletions(-) delete mode 100644 .github/workflows/build-matrix.yaml create mode 100644 .github/workflows/ci-cd.yaml delete mode 100644 .github/workflows/deploy-and-test-cluster.yml delete mode 100644 .github/workflows/docker-build.yml delete mode 100644 .github/workflows/gradle-build.yml delete mode 100644 .github/workflows/java.yml delete mode 100644 .github/workflows/maven-build.yml delete mode 100644 .github/workflows/multi-job.yaml diff --git a/.github/workflows/build-matrix.yaml b/.github/workflows/build-matrix.yaml deleted file mode 100644 index e0aad3c21..000000000 --- a/.github/workflows/build-matrix.yaml +++ /dev/null @@ -1,26 +0,0 @@ -name: Java CI Matrix Build - -on: [push, pull_request] - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - java: [17, 21] - - name: Build with Java ${{ matrix.java }} - - steps: - - name: Checkout Code - uses: actions/checkout@v4 - - - name: Set up Java ${{ matrix.java }} - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: ${{ matrix.java }} - - - name: Build with Gradle - run: ./gradlew build diff --git a/.github/workflows/ci-cd.yaml b/.github/workflows/ci-cd.yaml new file mode 100644 index 000000000..7f114ebdf --- /dev/null +++ b/.github/workflows/ci-cd.yaml @@ -0,0 +1,94 @@ +name: Spring PetClinic CI/CD + +on: + pull_request: + branches: [main] + push: + branches: [main] + +env: + IMAGE_NAME: spring-petclinic + +jobs: + checkstyle: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + name: Checkstyle + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 17 + - name: Checkstyle + run: ./gradlew checkstyleMain checkstyleTest + - name: Upload Checkstyle Report + uses: actions/upload-artifact@v4 + with: + name: checkstyle-report + path: build/reports/checkstyle/ + + test: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + needs: checkstyle + name: Run Tests + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 17 + - run: ./gradlew test + + build: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + needs: test + name: Build App + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 17 + - run: ./gradlew build -x test + + docker-pr: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + needs: build + name: Build & Push Docker Image (MR) + steps: + - uses: actions/checkout@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build & Push + run: | + SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-7) + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/mr:${SHORT_SHA} . + docker push ${{ secrets.DOCKERHUB_USERNAME }}/mr:${SHORT_SHA} + + docker-main: + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + runs-on: ubuntu-latest + name: Build & Push Docker Image (Main) + steps: + - uses: actions/checkout@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build & Push + run: | + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/main:latest . + docker push ${{ secrets.DOCKERHUB_USERNAME }}/main:latest + diff --git a/.github/workflows/deploy-and-test-cluster.yml b/.github/workflows/deploy-and-test-cluster.yml deleted file mode 100644 index 7353a604b..000000000 --- a/.github/workflows/deploy-and-test-cluster.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Deploy and Test Cluster - -on: - push: - branches: [main] - paths: - - 'k8s/**' - pull_request: - branches: [main] - paths: - - 'k8s/**' - -jobs: - deploy-and-test-cluster: - runs-on: ubuntu-latest - steps: - - name: Check out the repository - uses: actions/checkout@v2 - - - name: Create k8s Kind Cluster - uses: helm/kind-action@v1 - - - name: Deploy application - run: | - kubectl apply -f k8s/ - - - name: Wait for Pods to be ready - run: | - kubectl wait --for=condition=ready pod -l app=demo-db --timeout=180s - kubectl wait --for=condition=ready pod -l app=petclinic --timeout=180s - diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml deleted file mode 100644 index 879ef648c..000000000 --- a/.github/workflows/docker-build.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Build and Push Docker Image - -on: - push: - branches: [ main ] - -jobs: - build-and-push: - runs-on: ubuntu-latest - - steps: - - name: ๐Ÿงพ Checkout Code - uses: actions/checkout@v4 - - - name: โ˜• Set up JDK 17 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '17' - - - name: ๐Ÿงฑ Build with Gradle - run: ./gradlew build - - - name: ๐Ÿ” Log in to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: ๐Ÿณ Build and Tag Docker Image - run: docker build -t ${{ secrets.DOCKER_USERNAME }}/spring-petclinic:latest . - - - name: ๐Ÿš€ Push Docker Image - run: docker push ${{ secrets.DOCKER_USERNAME }}/spring-petclinic:latest - diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml deleted file mode 100644 index c24c121b1..000000000 --- a/.github/workflows/gradle-build.yml +++ /dev/null @@ -1,31 +0,0 @@ -# This workflow will build a Java project with Gradle, and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://docs.github.com/en/actions/use-cases-and-examples/building-and-testing/building-and-testing-java-with-gradle - -name: Java CI with Gradle - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - strategy: - matrix: - java: [ '17' ] - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{matrix.java}} - uses: actions/setup-java@v4 - with: - java-version: ${{matrix.java}} - distribution: 'adopt' - cache: maven - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Build with Gradle - run: ./gradlew build diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml deleted file mode 100644 index b344d975f..000000000 --- a/.github/workflows/java.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Java CI with Gradle - -on: [push, pull_request] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: ๐Ÿ“ฅ Checkout code - uses: actions/checkout@v4 - - - name: โ˜• Set up JDK 17 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '17' - - - name: ๐Ÿ“ฆ Build with Gradle - run: ./gradlew build - diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml deleted file mode 100644 index a1ec4dab7..000000000 --- a/.github/workflows/maven-build.yml +++ /dev/null @@ -1,29 +0,0 @@ -# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://docs.github.com/en/actions/use-cases-and-examples/building-and-testing/building-and-testing-java-with-maven - -name: Java CI with Maven - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - strategy: - matrix: - java: [ '17' ] - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK ${{matrix.java}} - uses: actions/setup-java@v4 - with: - java-version: ${{matrix.java}} - distribution: 'adopt' - cache: maven - - name: Build with Maven Wrapper - run: ./mvnw -B verify diff --git a/.github/workflows/multi-job.yaml b/.github/workflows/multi-job.yaml deleted file mode 100644 index 01e291fff..000000000 --- a/.github/workflows/multi-job.yaml +++ /dev/null @@ -1,59 +0,0 @@ -name: Multi-Job CI/CD Pipeline - -on: [push, pull_request] - -jobs: - test: - name: Run Tests - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Java 17 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: 17 - - - name: Make Gradle executable - run: chmod +x ./gradlew - - - name: Run Tests - run: ./gradlew test - - build: - name: Build App - runs-on: ubuntu-latest - needs: test - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Java 17 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: 17 - - - name: Make Gradle executable - run: chmod +x ./gradlew - - docker_push: - name: Push to Docker Hub - runs-on: ubuntu-latest - needs: build - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Docker Hub Login - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and Push Docker Image - run: | - docker build -t ${{ secrets.DOCKER_USERNAME }}/spring-petclinic:latest . - docker push ${{ secrets.DOCKER_USERNAME }}/spring-petclinic:latest From 9823bf34e4aafd274b7171ac8ed681b3b6b391d6 Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Wed, 18 Jun 2025 22:51:40 +0530 Subject: [PATCH 40/42] Corrected Pipeline --- .github/workflows/ci-cd.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-cd.yaml b/.github/workflows/ci-cd.yaml index 7f114ebdf..97b5b7e98 100644 --- a/.github/workflows/ci-cd.yaml +++ b/.github/workflows/ci-cd.yaml @@ -66,13 +66,13 @@ jobs: - name: Login to DockerHub uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} - name: Build & Push run: | SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-7) - docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/mr:${SHORT_SHA} . - docker push ${{ secrets.DOCKERHUB_USERNAME }}/mr:${SHORT_SHA} + docker build -t ${{ secrets.DOCKER_USERNAME }}/mr:${SHORT_SHA} . + docker push ${{ secrets.DOCKER_USERNAME }}/mr:${SHORT_SHA} docker-main: if: github.ref == 'refs/heads/main' && github.event_name == 'push' @@ -85,10 +85,10 @@ jobs: - name: Login to DockerHub uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} - name: Build & Push run: | - docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/main:latest . - docker push ${{ secrets.DOCKERHUB_USERNAME }}/main:latest + docker build -t ${{ secrets.DOCKER_USERNAME }}/main:latest . + docker push ${{ secrets.DOCKER_USERNAME }}/main:latest From f4dcd30f7a1b0f93d4c281b0f4cafcfa24641e5e Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Wed, 18 Jun 2025 22:56:45 +0530 Subject: [PATCH 41/42] Rectified Pipeline --- .github/workflows/ci-cd.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-cd.yaml b/.github/workflows/ci-cd.yaml index 97b5b7e98..f104f08be 100644 --- a/.github/workflows/ci-cd.yaml +++ b/.github/workflows/ci-cd.yaml @@ -67,7 +67,7 @@ jobs: uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} + password: ${{ secrets.DOCKER_PASSWORD }} - name: Build & Push run: | SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-7) @@ -86,7 +86,7 @@ jobs: uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_TOKEN }} + password: ${{ secrets.DOCKER_PASSWORD }} - name: Build & Push run: | docker build -t ${{ secrets.DOCKER_USERNAME }}/main:latest . From c9572d6dcbcea20053ec15073a847855f445932a Mon Sep 17 00:00:00 2001 From: Pranjal Kumar Date: Wed, 18 Jun 2025 23:14:32 +0530 Subject: [PATCH 42/42] Test PR Trigger --- Dockerfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1259a8a93..70e5b0097 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,11 @@ -FROM gradle:8.10.2-jdk17 AS build +FROM eclipse-temurin:17-jdk as builder WORKDIR /app COPY . . -RUN gradle build --no-daemon +RUN ./gradlew build -x test -FROM eclipse-temurin:17-jdk +FROM eclipse-temurin:17-jre WORKDIR /app -COPY --from=build /app/build/libs/*.jar app.jar +COPY --from=builder /app/build/libs/*.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"] +`