From 1e25df7f9b892ab53e573fcf87e32b649c0a5a26 Mon Sep 17 00:00:00 2001 From: hzwnrw Date: Tue, 26 Aug 2025 11:44:16 +0800 Subject: [PATCH] Update insurance/Jenkinsfile.InsuranceBe --- insurance/Jenkinsfile.InsuranceBe | 91 ++++++++++++------------------- 1 file changed, 34 insertions(+), 57 deletions(-) diff --git a/insurance/Jenkinsfile.InsuranceBe b/insurance/Jenkinsfile.InsuranceBe index 4a73de4..d54b784 100644 --- a/insurance/Jenkinsfile.InsuranceBe +++ b/insurance/Jenkinsfile.InsuranceBe @@ -6,7 +6,7 @@ pipeline { KUBECONFIG_CREDENTIALS = "k3s-kubeconfig" GITEA_CREDENTIALS = "gitea" K8S_NAMESPACE = "insurance-system" - DEPLOYMENT_NAME = "insurance-be" + DEPLOYMENT_NAME = "insurance-backend" } stages { @@ -25,51 +25,43 @@ pipeline { stage('Increase Version') { steps { script { - // Get current version + // disable colors so no CTRL chars pollute version string def currentVersion = sh( - script: "mvn help:evaluate -Dexpression=project.version -q -DforceStdout || echo 'Failed'", + script: "mvn --batch-mode -Dstyle.color=never help:evaluate -Dexpression=project.version -q -DforceStdout", returnStdout: true ).trim() - - if (currentVersion == "Failed" || !currentVersion) { - error "Unable to retrieve version from pom.xml" - } echo "Current version: ${currentVersion}" - // Update version (POSIX safe) - sh ''' - MAJOR=$(mvn help:evaluate -Dexpression=parsedVersion.majorVersion -q -DforceStdout) - MINOR=$(mvn help:evaluate -Dexpression=parsedVersion.minorVersion -q -DforceStdout) - NEXTINC=$(mvn help:evaluate -Dexpression=parsedVersion.nextIncrementalVersion -q -DforceStdout) - - mvn versions:set -DnewVersion="$MAJOR.$MINOR.$NEXTINC-SNAPSHOT" versions:commit - ''' - - // Get new version - def newVersion = sh( - script: "mvn help:evaluate -Dexpression=project.version -q -DforceStdout", + def major = sh( + script: "mvn --batch-mode -Dstyle.color=never help:evaluate -Dexpression=parsedVersion.majorVersion -q -DforceStdout", + returnStdout: true + ).trim() + def minor = sh( + script: "mvn --batch-mode -Dstyle.color=never help:evaluate -Dexpression=parsedVersion.minorVersion -q -DforceStdout", + returnStdout: true + ).trim() + def nextInc = sh( + script: "mvn --batch-mode -Dstyle.color=never help:evaluate -Dexpression=parsedVersion.nextIncrementalVersion -q -DforceStdout", returnStdout: true ).trim() - newVersion = newVersion.replaceAll(/\u001B\[.*?m/, '') - if (!newVersion || newVersion.contains("null")) { - error "Invalid new version: ${newVersion}" - } + def newVersion = "${major}.${minor}.${nextInc}-SNAPSHOT" + echo "New version: ${newVersion}" + env.NEW_VERSION = newVersion - echo "Updated version from ${currentVersion} → ${newVersion}" + sh """ + mvn --batch-mode -Dstyle.color=never versions:set -DnewVersion=${newVersion} versions:commit + """ - // Commit and push withCredentials([usernamePassword(credentialsId: env.GITEA_CREDENTIALS, usernameVariable: 'GIT_USER', passwordVariable: 'GIT_PASS')]) { sh """ - git config user.email "jenkins@yourdomain.com" git config user.name "Jenkins" + git config user.email "jenkins@hzwnrw.my" git add pom.xml - git commit -m "Auto-increment version to ${newVersion}" || echo "No changes to commit" - git push https://${GIT_USER}:${GIT_PASS}@git.hzwnrw.my/Insurance/insurance-be.git HEAD:main || exit 1 + git commit -m "Auto-increment version to ${newVersion}" || echo "No changes" + git push https://${GIT_USER}:${GIT_PASS}@git.hzwnrw.my/Insurance/insurance-be.git HEAD:main """ } - - env.NEW_VERSION = newVersion } } } @@ -77,17 +69,15 @@ pipeline { stage('Build & Push Docker Image') { steps { script { - sh "mvn clean package -DskipTests || exit 1" + sh "mvn clean package -DskipTests -B -Dstyle.color=never" - def dockerImage = "hzwnrw/dev:insurance-be-${env.NEW_VERSION}" - echo "Building Docker image: ${dockerImage}" - sh "docker build -t ${dockerImage} . || exit 1" + def dockerImage = "hzwnrw/dev:insurance-backend-${env.NEW_VERSION}" + sh "docker build -t ${dockerImage} ." withCredentials([usernamePassword(credentialsId: env.REGISTRY_CREDENTIALS, usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { - sh "echo ${DOCKER_PASS} | docker login -u ${DOCKER_USER} --password-stdin || exit 1" + sh "echo ${DOCKER_PASS} | docker login -u ${DOCKER_USER} --password-stdin" } - - sh "docker push ${dockerImage} || exit 1" + sh "docker push ${dockerImage}" env.DOCKER_IMAGE = dockerImage } } @@ -97,12 +87,10 @@ pipeline { steps { script { withCredentials([file(credentialsId: env.KUBECONFIG_CREDENTIALS, variable: 'KUBECONFIG')]) { - sh ''' - echo "Updating K3s deployment..." - kubectl --kubeconfig=$KUBECONFIG set image deployment/${DEPLOYMENT_NAME} ${DEPLOYMENT_NAME}=${DOCKER_IMAGE} -n ${K8S_NAMESPACE} || exit 1 - kubectl --kubeconfig=$KUBECONFIG rollout status deployment/${DEPLOYMENT_NAME} -n ${K8S_NAMESPACE} || exit 1 - echo "Deployment updated successfully!" - ''' + sh """ + kubectl --kubeconfig=$KUBECONFIG set image deployment/${DEPLOYMENT_NAME} ${DEPLOYMENT_NAME}=${DOCKER_IMAGE} -n ${K8S_NAMESPACE} + kubectl --kubeconfig=$KUBECONFIG rollout status deployment/${DEPLOYMENT_NAME} -n ${K8S_NAMESPACE} + """ } } } @@ -110,14 +98,9 @@ pipeline { stage('Cleanup') { steps { - script { - if (env.DOCKER_IMAGE) { - sh "docker rmi ${env.DOCKER_IMAGE} || echo 'Image not found, skipping cleanup'" - } - sh "docker image prune -f || echo 'No dangling images'" - sh "docker builder prune -f || echo 'No build cache'" - sh "mvn clean || echo 'No Maven artifacts to clean'" - } + sh "docker image prune -f || true" + sh "docker builder prune -f || true" + sh "mvn clean -B -Dstyle.color=never || true" } } } @@ -126,11 +109,5 @@ pipeline { always { cleanWs() } - failure { - echo "Pipeline failed! Check the logs." - } - success { - echo "Pipeline completed successfully!" - } } }