Update apps/demo-nginx/Jenkinsfile

This commit is contained in:
2026-01-08 11:22:50 +00:00
parent d3f426f688
commit 583f382208

View File

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