mirror of
https://github.com/narrrl/holy-flavor-rater.git
synced 2026-11-03 16:41:27 +01:00
added pre-push integrity hook for automated frontend and backend checks
This commit is contained in:
1 parent
c74524be17
commit
25f33e14f9
2 files changed
+76
No files matched your search
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Get the root directory
|
||||||
|
ROOT_DIR=$(git rev-parse --show-toplevel)
|
||||||
|
|
||||||
|
# Path to the hook script
|
||||||
|
HOOK_SRC="$ROOT_DIR/scripts/pre-push.sh"
|
||||||
|
HOOK_DEST="$ROOT_DIR/.git/hooks/pre-push"
|
||||||
|
|
||||||
|
# Make the source script executable
|
||||||
|
chmod +x "$HOOK_SRC"
|
||||||
|
|
||||||
|
# Copy/Link to git hooks
|
||||||
|
cp "$HOOK_SRC" "$HOOK_DEST"
|
||||||
|
chmod +x "$HOOK_DEST"
|
||||||
|
|
||||||
|
echo "✅ Pre-push hook installed successfully!"
|
||||||
|
echo "It will now run frontend builds and backend checks automatically before every 'git push'."
|
||||||
Executable
+58
@@ -0,0 +1,58 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Get the root directory of the project
|
||||||
|
ROOT_DIR=$(git rev-parse --show-toplevel)
|
||||||
|
|
||||||
|
# Set environment variables for non-interactive backend checks
|
||||||
|
export SECRET_KEY="pre-push-check-key"
|
||||||
|
export DEBUG="false"
|
||||||
|
export ALLOWED_HOSTS="localhost"
|
||||||
|
|
||||||
|
echo "========================================"
|
||||||
|
echo " Running Pre-Push Integrity Checks "
|
||||||
|
echo "========================================"
|
||||||
|
|
||||||
|
# 1. Frontend Build
|
||||||
|
echo ""
|
||||||
|
echo "Step 1: Checking Frontend Build..."
|
||||||
|
cd "$ROOT_DIR/frontend"
|
||||||
|
if ! npm run build; then
|
||||||
|
echo ""
|
||||||
|
echo "❌ ERROR: Frontend build failed."
|
||||||
|
echo " Please fix build errors before pushing."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 2. Backend Check
|
||||||
|
echo ""
|
||||||
|
echo "Step 2: Checking Backend Integrity..."
|
||||||
|
cd "$ROOT_DIR/backend"
|
||||||
|
|
||||||
|
# Detect python executable (prefer venv if exists)
|
||||||
|
if [ -f "venv/bin/python" ]; then
|
||||||
|
PYTHON_EXEC="venv/bin/python"
|
||||||
|
elif command -v python3 &>/dev/null; then
|
||||||
|
PYTHON_EXEC="python3"
|
||||||
|
else
|
||||||
|
PYTHON_EXEC="python"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for missing migrations
|
||||||
|
if ! $PYTHON_EXEC manage.py makemigrations --check --dry-run &>/dev/null; then
|
||||||
|
echo ""
|
||||||
|
echo "❌ ERROR: Missing migrations detected."
|
||||||
|
echo " Please run 'python manage.py makemigrations' locally."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run Django system checks
|
||||||
|
if ! $PYTHON_EXEC manage.py check; then
|
||||||
|
echo ""
|
||||||
|
echo "❌ ERROR: Django system check failed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "✅ All checks passed! Proceeding with push..."
|
||||||
|
echo "========================================"
|
||||||
|
exit 0
|
||||||
Reference in new issue
Block a user