diff --git a/apps/demo-nginx/Jenkinsfile b/apps/demo-nginx/Jenkinsfile index 1d6454a..8e66fc8 100644 --- a/apps/demo-nginx/Jenkinsfile +++ b/apps/demo-nginx/Jenkinsfile @@ -275,21 +275,12 @@ EOF git config user.email "jenkins@thedevops.dev" # Save current commit for rollback - sed -i s|image: .*|image: docker.io/vladcrypto/demo-nginx:main-${BUILD_NUMBER}| apps/demo-nginx/deployment.yaml + git rev-parse HEAD > /tmp/previous_commit_${BUILD_NUMBER}.txt + + sed -i 's|image: .*|image: ${DOCKER_REGISTRY}/${DOCKER_REPO}/${APP_NAME}:${IMAGE_TAG}|' apps/demo-nginx/deployment.yaml git add apps/demo-nginx/deployment.yaml - git commit -m "chore(demo-nginx): Update image to main-${BUILD_NUMBER}" - - def gitopsCommit = sh( - script: "git rev-parse HEAD", - returnStdout: true - ).trim() - - env.GITOPS_COMMIT = gitopsCommit - + git commit -m "chore(demo-nginx): Update image to ${IMAGE_TAG}" || echo "No changes" git push origin main - - echo "📌 GitOps commit pushed: ${env.GITOPS_COMMIT}" - """ } echo "✅ Manifests updated!" @@ -300,12 +291,12 @@ EOF stage('Wait for ArgoCD Sync') { steps { script { - if (!env.GITOPS_COMMIT) { - error("❌ GITOPS_COMMIT is not set") - } + echo "⏳ Waiting for ArgoCD to apply Git revision..." - def expectedRevision = env.GITOPS_COMMIT - echo "⏳ Waiting for ArgoCD to apply GitOps commit ${expectedRevision}" + def expectedRevision = sh( + script: "git rev-parse HEAD", + returnStdout: true + ).trim() for (int i = 1; i <= 12; i++) { def argoRevision = sh( @@ -318,23 +309,37 @@ EOF returnStdout: true ).trim() - echo "Expected GitOps revision : ${expectedRevision}" - echo "ArgoCD applied revision : ${argoRevision}" - echo "ArgoCD sync status : ${syncStatus}" + echo "Expected Git revision : ${expectedRevision}" + echo "ArgoCD applied revision: ${argoRevision}" + echo "ArgoCD sync status : ${syncStatus}" if (syncStatus == "Synced" && argoRevision == expectedRevision) { - echo "✅ ArgoCD successfully applied GitOps commit" + echo "✅ ArgoCD successfully applied Git revision" return } sleep 10 } - error("❌ ArgoCD did not apply expected GitOps revision in time") + error("❌ ArgoCD did not apply expected Git revision in time") } } } +stage('Wait for Deployment Rollout') { + steps { + script { + echo "⏳ Waiting for Kubernetes rollout to complete..." + sh """ + kubectl rollout status deployment/demo-nginx \ + -n demo-app \ + --timeout=${DEPLOYMENT_TIMEOUT} + """ + + echo "✅ Deployment rollout completed successfully" + } + } +}