Improve deployment script with enhanced build validation and error handling
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 47s
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 47s
Update deploy-production.sh to include checks for missing dependencies, capture build output, and validate the presence of critical files and directories. This enhancement aims to provide clearer feedback during the build process and ensure a more robust deployment experience.
This commit is contained in:
@@ -176,14 +176,34 @@ echo "5. Building application..."
|
|||||||
echo " Running: npm run build"
|
echo " Running: npm run build"
|
||||||
echo " (This may take a few minutes...)"
|
echo " (This may take a few minutes...)"
|
||||||
|
|
||||||
# Build mit expliziter Fehlerbehandlung
|
# Clean-Build: Stelle sicher, dass node_modules aktuell ist
|
||||||
if ! npm run build; then
|
echo " Checking dependencies..."
|
||||||
|
if [ ! -f "node_modules/.package-lock.json" ] && [ ! -f "package-lock.json" ]; then
|
||||||
|
echo " WARNING: package-lock.json fehlt. Führe npm install aus..."
|
||||||
|
npm install
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build mit expliziter Fehlerbehandlung und Output-Capture
|
||||||
|
BUILD_OUTPUT=$(npm run build 2>&1)
|
||||||
|
BUILD_EXIT_CODE=$?
|
||||||
|
|
||||||
|
# Zeige Build-Output
|
||||||
|
echo "$BUILD_OUTPUT"
|
||||||
|
|
||||||
|
if [ "$BUILD_EXIT_CODE" -ne 0 ]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "ERROR: Build fehlgeschlagen mit Exit-Code $?"
|
echo "ERROR: Build fehlgeschlagen mit Exit-Code $BUILD_EXIT_CODE"
|
||||||
echo "Bitte prüfen Sie die Build-Ausgabe oben auf Fehler."
|
echo "Bitte prüfen Sie die Build-Ausgabe oben auf Fehler."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Prüfe auf Warnungen im Build-Output, die auf Probleme hinweisen
|
||||||
|
if echo "$BUILD_OUTPUT" | grep -qi "error\|failed\|missing"; then
|
||||||
|
echo ""
|
||||||
|
echo "WARNING: Build-Output enthält möglicherweise Fehler oder Warnungen."
|
||||||
|
echo "Bitte prüfen Sie die Ausgabe oben."
|
||||||
|
fi
|
||||||
|
|
||||||
# Prüfe, ob der Build erfolgreich war - mehrere Checks
|
# Prüfe, ob der Build erfolgreich war - mehrere Checks
|
||||||
echo ""
|
echo ""
|
||||||
echo " Verifying build output..."
|
echo " Verifying build output..."
|
||||||
@@ -200,9 +220,26 @@ else
|
|||||||
if [ "$NUXT_FILES" -eq 0 ]; then
|
if [ "$NUXT_FILES" -eq 0 ]; then
|
||||||
echo "ERROR: .output/public/_nuxt ist leer!"
|
echo "ERROR: .output/public/_nuxt ist leer!"
|
||||||
BUILD_FAILED=1
|
BUILD_FAILED=1
|
||||||
|
else
|
||||||
|
# Prüfe, ob wichtige Dateien vorhanden sind
|
||||||
|
JS_FILES=$(find .output/public/_nuxt -name "*.js" 2>/dev/null | wc -l)
|
||||||
|
CSS_FILES=$(find .output/public/_nuxt -name "*.css" 2>/dev/null | wc -l)
|
||||||
|
echo " ✓ JS-Dateien: $JS_FILES, CSS-Dateien: $CSS_FILES"
|
||||||
|
if [ "$JS_FILES" -eq 0 ]; then
|
||||||
|
echo "ERROR: Keine JS-Dateien in .output/public/_nuxt gefunden!"
|
||||||
|
BUILD_FAILED=1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check 1b: _nuxt/builds Verzeichnis (für Meta-Dateien)
|
||||||
|
if [ -d ".output/public/_nuxt/builds" ]; then
|
||||||
|
BUILD_META_FILES=$(find .output/public/_nuxt/builds -type f 2>/dev/null | wc -l)
|
||||||
|
echo " ✓ .output/public/_nuxt/builds vorhanden ($BUILD_META_FILES Meta-Dateien)"
|
||||||
|
else
|
||||||
|
echo "WARNING: .output/public/_nuxt/builds fehlt (kann in manchen Nuxt-Versionen normal sein)"
|
||||||
|
fi
|
||||||
|
|
||||||
# Check 2: Server index.mjs
|
# Check 2: Server index.mjs
|
||||||
if [ ! -f ".output/server/index.mjs" ]; then
|
if [ ! -f ".output/server/index.mjs" ]; then
|
||||||
echo "ERROR: .output/server/index.mjs fehlt!"
|
echo "ERROR: .output/server/index.mjs fehlt!"
|
||||||
|
|||||||
Reference in New Issue
Block a user