fix: add fallback for empty image_tag in deployment
- Add validation and fallback logic for IMAGE_TAG - If build job output is empty, generate tag from commit SHA - Use 'latest' tag as last resort fallback - Add debug output to show what tag is being used - Fixes 'invalid reference format' error when IMAGE_TAG is empty
This commit is contained in:
@@ -644,15 +644,47 @@ jobs:
|
||||
DEPLOYMENT_HOST="${{ env.DEPLOYMENT_HOST }}"
|
||||
REGISTRY="${{ env.REGISTRY }}"
|
||||
IMAGE_NAME="${{ env.IMAGE_NAME }}"
|
||||
|
||||
# Get image tag from build job output with fallback
|
||||
IMAGE_TAG="${{ needs.build.outputs.image_tag }}"
|
||||
|
||||
# Debug: Show what we got from the build job
|
||||
echo "🔍 Debug: Build job output image_tag: '${IMAGE_TAG}'"
|
||||
|
||||
# If IMAGE_TAG is empty or invalid, use fallback
|
||||
if [ -z "$IMAGE_TAG" ] || [ "$IMAGE_TAG" = "..." ] || [ "$IMAGE_TAG" = "null" ]; then
|
||||
echo "⚠️ Image tag from build job is empty or invalid, trying fallback..."
|
||||
COMMIT_SHA="${{ github.sha }}"
|
||||
if [ -z "$COMMIT_SHA" ]; then
|
||||
# Try to get from git repo if checked out
|
||||
COMMIT_SHA=$(cd /workspace/repo && git rev-parse HEAD 2>/dev/null || echo "")
|
||||
fi
|
||||
if [ -z "$COMMIT_SHA" ]; then
|
||||
# Last resort: use latest tag (always exists after build)
|
||||
echo " Using 'latest' tag as fallback"
|
||||
IMAGE_TAG="latest"
|
||||
else
|
||||
SHORT_SHA=$(echo "$COMMIT_SHA" | cut -c1-7)
|
||||
IMAGE_TAG="git-${SHORT_SHA}"
|
||||
echo " Generated tag from commit SHA: ${IMAGE_TAG}"
|
||||
fi
|
||||
fi
|
||||
|
||||
FULL_IMAGE="${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
STACK_PATH="~/deployment/stacks/application"
|
||||
|
||||
echo "🚀 Starting deployment..."
|
||||
echo " Image: ${FULL_IMAGE}"
|
||||
echo " Tag: ${IMAGE_TAG}"
|
||||
echo " Host: ${DEPLOYMENT_HOST}"
|
||||
echo " Stack: ${STACK_PATH}"
|
||||
|
||||
# Validate that IMAGE_TAG is not empty
|
||||
if [ -z "$IMAGE_TAG" ] || [ "$IMAGE_TAG" = "..." ]; then
|
||||
echo "❌ Error: IMAGE_TAG is empty or invalid: '${IMAGE_TAG}'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# SSH with proper key and execute deployment commands
|
||||
ssh -i ~/.ssh/production \
|
||||
-o StrictHostKeyChecking=no \
|
||||
|
||||
Reference in New Issue
Block a user