43 lines
1.1 KiB
Bash
Executable File
43 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Git Pre-Commit Hook: Melo App Qualitäts-Gate
|
|
# Läuft automatisch vor jedem git commit
|
|
|
|
echo "🔍 Melo App Qualitäts-Gate gestartet..."
|
|
|
|
# 1. Dart Analyse
|
|
echo -n " Prüfe: dart analyze ... "
|
|
ANALYZE_OUTPUT=$(flutter analyze 2>&1)
|
|
if echo "$ANALYZE_OUTPUT" | grep -q "No issues found"; then
|
|
echo "✅"
|
|
else
|
|
echo "❌ FEHLER!"
|
|
echo "$ANALYZE_OUTPUT" | tail -20
|
|
exit 1
|
|
fi
|
|
|
|
# 2. Dart Formatierung
|
|
echo -n " Prüfe: dart format ... "
|
|
FORMAT_OUTPUT=$(dart format --set-exit-if-changed lib/ 2>&1)
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅"
|
|
else
|
|
echo "❌ Formatierungsfehler! Führe 'dart format lib/' aus."
|
|
echo "$FORMAT_OUTPUT"
|
|
exit 1
|
|
fi
|
|
|
|
# 3. Tests
|
|
echo -n " Prüfe: flutter test ... "
|
|
TEST_OUTPUT=$(flutter test 2>&1)
|
|
if echo "$TEST_OUTPUT" | grep -q "All tests passed"; then
|
|
echo "✅"
|
|
elif echo "$TEST_OUTPUT" | grep -q "No tests found"; then
|
|
echo "⚠️ Keine Tests vorhanden (überspringe)"
|
|
else
|
|
echo "❌ Tests fehlgeschlagen!"
|
|
echo "$TEST_OUTPUT" | tail -20
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ Alle Prüfungen bestanden! Commit wird freigegeben."
|