From 45f23ac0f3627cb5449581c8cc998ca96e8ee50c Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 8 Jan 2026 14:28:39 +0000 Subject: [PATCH] Update apps/demo-nginx/Jenkinsfile --- apps/demo-nginx/Jenkinsfile | 104 ++++++++++++++++++++---------------- 1 file changed, 57 insertions(+), 47 deletions(-) diff --git a/apps/demo-nginx/Jenkinsfile b/apps/demo-nginx/Jenkinsfile index 508d91b..bb8b2a6 100644 --- a/apps/demo-nginx/Jenkinsfile +++ b/apps/demo-nginx/Jenkinsfile @@ -398,57 +398,67 @@ EOF } stage('Verify Deployment') { - when { branch 'main' } - steps { - script { - echo "✅ Verifying deployment and pod status..." - - try { - def verifyResult = sh(script: """#!/bin/bash - set -e - - echo "================================================" - echo "DEPLOYMENT VERIFICATION" - echo "================================================" - - # 1. Check deployment status - echo "" - echo "1. Checking deployment status..." - READY_PODS=\$(kubectl get deployment ${APP_NAME} -n ${NAMESPACE} -o jsonpath='{.status.readyReplicas}') - DESIRED_PODS=\$(kubectl get deployment ${APP_NAME} -n ${NAMESPACE} -o jsonpath='{.spec.replicas}') - UPDATED_PODS=\$(kubectl get deployment ${APP_NAME} -n ${NAMESPACE} -o jsonpath='{.status.updatedReplicas}') - AVAILABLE_PODS=\$(kubectl get deployment ${APP_NAME} -n ${NAMESPACE} -o jsonpath='{.status.availableReplicas}') - - echo " Desired replicas: \${DESIRED_PODS}" - echo " Updated replicas: \${UPDATED_PODS}" - echo " Ready replicas: \${READY_PODS}" - echo " Available replicas: \${AVAILABLE_PODS}" - - if [ "\${READY_PODS}" != "\${DESIRED_PODS}" ]; then - echo " ❌ FAILED: Not all pods are ready!" - echo " Expected: \${DESIRED_PODS}, Got: \${READY_PODS}" - exit 1 - fi - echo " ✅ All pods ready" - - # 2. Verify running pod images - echo "" - echo "2. Checking running pod images..." + when { branch 'main' } + steps { + script { + echo "✅ Verifying deployment and pod status..." - def POD_IMAGES = sh( - script: "kubectl get pods -n ${NAMESPACE} -l app=${APP_NAME} -o jsonpath='{range .items[*]}{.spec.containers[0].image}{\" \"}{end}'", - returnStdout: true - ).trim() + /* ------------------------------- + * 1. Deployment status check + * ------------------------------- */ + sh """ + set -e + echo "================================================" + echo "DEPLOYMENT VERIFICATION" + echo "================================================" - echo " Running pod images:" - echo " ${POD_IMAGES}" - echo " Expected tag: ${IMAGE_TAG}" + echo "" + echo "1. Checking deployment status..." - if (!POD_IMAGES.contains(IMAGE_TAG)) { - error("❌ FAILED: Running pods do not use expected image!") - } + READY_PODS=\$(kubectl get deployment ${APP_NAME} -n ${NAMESPACE} -o jsonpath='{.status.readyReplicas}') + DESIRED_PODS=\$(kubectl get deployment ${APP_NAME} -n ${NAMESPACE} -o jsonpath='{.spec.replicas}') + UPDATED_PODS=\$(kubectl get deployment ${APP_NAME} -n ${NAMESPACE} -o jsonpath='{.status.updatedReplicas}') + AVAILABLE_PODS=\$(kubectl get deployment ${APP_NAME} -n ${NAMESPACE} -o jsonpath='{.status.availableReplicas}') + + echo " Desired replicas : \$DESIRED_PODS" + echo " Updated replicas : \$UPDATED_PODS" + echo " Ready replicas : \$READY_PODS" + echo " Available replicas : \$AVAILABLE_PODS" + + if [ "\$READY_PODS" != "\$DESIRED_PODS" ]; then + echo "❌ FAILED: Not all pods are ready" + exit 1 + fi + + echo "✅ All pods are ready" + """ + + /* ------------------------------- + * 2. Pod image verification (Groovy!) + * ------------------------------- */ + def podImages = sh( + script: """ + kubectl get pods -n ${NAMESPACE} -l app=${APP_NAME} \ + -o jsonpath='{range .items[*]}{.spec.containers[0].image}{"\\n"}{end}' + """, + returnStdout: true + ).trim() + + echo "" + echo "2. Checking running pod images..." + echo "Running pod images:" + echo podImages + echo "Expected image tag: ${IMAGE_TAG}" + + if (!podImages.contains(IMAGE_TAG)) { + error("❌ FAILED: Running pods do not use expected image ${IMAGE_TAG}") + } + + echo "✅ All running pods use expected image ${IMAGE_TAG}" + } + } +} - echo " ✅ All running pods use expected image"