fix(rollback): Auto-trim whitespace from TARGET_VERSION input

This commit is contained in:
Claude AI
2026-01-06 08:21:24 +00:00
parent 66e5db0e9a
commit 3f2e4ad90f

View File

@@ -34,7 +34,7 @@ pipeline {
environment { environment {
APP_NAME = 'demo-nginx' APP_NAME = 'demo-nginx'
CONTAINER_NAME = 'nginx' // Fixed: actual container name CONTAINER_NAME = 'nginx'
NAMESPACE = 'demo-app' NAMESPACE = 'demo-app'
DOCKER_REGISTRY = 'docker.io' DOCKER_REGISTRY = 'docker.io'
DOCKER_REPO = 'vladcrypto' DOCKER_REPO = 'vladcrypto'
@@ -48,14 +48,17 @@ pipeline {
script { script {
echo "🔍 Validating rollback request..." echo "🔍 Validating rollback request..."
if (params.TARGET_VERSION == '') { // Trim whitespace from input
env.TARGET_VERSION_CLEAN = params.TARGET_VERSION.trim()
if (env.TARGET_VERSION_CLEAN == '') {
error("❌ TARGET_VERSION cannot be empty!") error("❌ TARGET_VERSION cannot be empty!")
} }
echo """ echo """
📋 Rollback Configuration: 📋 Rollback Configuration:
Method: ${params.ROLLBACK_METHOD} Method: ${params.ROLLBACK_METHOD}
Target: ${params.TARGET_VERSION} Target: ${env.TARGET_VERSION_CLEAN}
Skip Health Check: ${params.SKIP_HEALTH_CHECK} Skip Health Check: ${params.SKIP_HEALTH_CHECK}
Dry Run: ${params.DRY_RUN} Dry Run: ${params.DRY_RUN}
""" """
@@ -99,17 +102,17 @@ pipeline {
stage('Prepare Rollback') { stage('Prepare Rollback') {
steps { steps {
script { script {
echo "🔄 Preparing rollback to: ${params.TARGET_VERSION}" echo "🔄 Preparing rollback to: ${env.TARGET_VERSION_CLEAN}"
if (params.ROLLBACK_METHOD == 'IMAGE_TAG') { if (params.ROLLBACK_METHOD == 'IMAGE_TAG') {
env.TARGET_IMAGE = "${DOCKER_REGISTRY}/${DOCKER_REPO}/${APP_NAME}:${params.TARGET_VERSION}" env.TARGET_IMAGE = "${DOCKER_REGISTRY}/${DOCKER_REPO}/${APP_NAME}:${env.TARGET_VERSION_CLEAN}"
sh """ sh """
echo "Target image: ${env.TARGET_IMAGE}" echo "Target image: ${env.TARGET_IMAGE}"
""" """
} else if (params.ROLLBACK_METHOD == 'REVISION_NUMBER') { } else if (params.ROLLBACK_METHOD == 'REVISION_NUMBER') {
env.REVISION = params.TARGET_VERSION env.REVISION = env.TARGET_VERSION_CLEAN
sh """ sh """
echo "Rolling back to revision: ${env.REVISION}" echo "Rolling back to revision: ${env.REVISION}"
@@ -120,7 +123,7 @@ pipeline {
""" """
} else if (params.ROLLBACK_METHOD == 'GIT_COMMIT') { } else if (params.ROLLBACK_METHOD == 'GIT_COMMIT') {
env.GIT_SHA = params.TARGET_VERSION env.GIT_SHA = env.TARGET_VERSION_CLEAN
echo "Rolling back to git commit: ${env.GIT_SHA}" echo "Rolling back to git commit: ${env.GIT_SHA}"
} }
@@ -161,7 +164,7 @@ pipeline {
sed -i 's|image: .*|image: ${env.TARGET_IMAGE}|' apps/demo-nginx/deployment.yaml sed -i 's|image: .*|image: ${env.TARGET_IMAGE}|' apps/demo-nginx/deployment.yaml
git add apps/demo-nginx/deployment.yaml git add apps/demo-nginx/deployment.yaml
git commit -m "rollback(demo-nginx): Manual rollback to ${params.TARGET_VERSION}" || echo "No changes" git commit -m "rollback(demo-nginx): Manual rollback to ${env.TARGET_VERSION_CLEAN}" || echo "No changes"
git push origin main git push origin main
""" """
} }
@@ -299,7 +302,7 @@ pipeline {
This is what would happen: This is what would happen:
Method: ${params.ROLLBACK_METHOD} Method: ${params.ROLLBACK_METHOD}
Target: ${params.TARGET_VERSION} Target: ${env.TARGET_VERSION_CLEAN}
Steps that would be executed: Steps that would be executed:
1. Update deployment to target version 1. Update deployment to target version
@@ -326,7 +329,7 @@ pipeline {
Application: ${APP_NAME} Application: ${APP_NAME}
Container: ${CONTAINER_NAME} Container: ${CONTAINER_NAME}
Method: ${params.ROLLBACK_METHOD} Method: ${params.ROLLBACK_METHOD}
Target: ${params.TARGET_VERSION} Target: ${env.TARGET_VERSION_CLEAN}
Namespace: ${NAMESPACE} Namespace: ${NAMESPACE}
The application has been rolled back successfully! ✨ The application has been rolled back successfully! ✨