fix(rollback): Auto-trim whitespace from TARGET_VERSION input
This commit is contained in:
@@ -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! ✨
|
||||||
|
|||||||
Reference in New Issue
Block a user