From 9271b558c3c1d535d74ff9a9e71264879c1ee535 Mon Sep 17 00:00:00 2001 From: jose-rZM <100773386+jose-rZM@users.noreply.github.com> Date: Mon, 15 Dec 2025 18:06:33 +0100 Subject: [PATCH] Rollback when failed deploy --- Jenkinsfile | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d01c4cc..71da272 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -104,17 +104,53 @@ pipeline { sh ''' set -e - docker rm -f cafeteria-backend cafeteria-frontend 2>/dev/null || true + : "${BACKEND_PORT:?Missing BACKEND_PORT}" + : "${BACKEND_HEALTH_URL:?Missing BACKEND_HEALTH_URL}" + : "${FRONTEND_PORT:?Missing FRONTEND_PORT}" + : "${FRONTEND_HEALTH_URL:?Missing FRONTEND_HEALTH_URL}" + + + # Backend + docker tag cafeteria-backend:latest cafeteria-backend:previous || true + docker rm -f cafeteria-backend 2>/dev/null || true docker run -d \ --name cafeteria-backend \ - -p 8000:8000 \ + -p "$BACKEND_PORT":"$BACKEND_PORT" \ cafeteria-backend:latest + sleep 5 + + if ! curl -fs "$BACKEND_HEALTH_URL"; then + echo "Backend failed, rollback" + docker rm -f cafeteria-backend + docker run -d \ + --name cafeteria-backend \ + -p "$BACKEND_PORT":"$BACKEND_PORT" \ + cafeteria-backend:previous + exit 1 + fi + + # Frontend + docker tag cafeteria-frontend:latest cafeteria-frontend:previous || true + docker rm -f cafeteria-frontend 2>/dev/null || true + docker run -d \ --name cafeteria-frontend \ - -p 3000:80 \ + -p "$FRONTEND_PORT":80 \ cafeteria-frontend:latest + + sleep 3 + + if ! curl -fs "$FRONTEND_HEALTH_URL"; then + echo "Frontend failed, rollback" + docker rm -f cafeteria-frontend + docker run -d \ + --name cafeteria-frontend \ + -p "$FRONTEND_PORT":80 \ + cafeteria-frontend:previous + exit 1 + fi ''' } }