Files
siriusscan--sirius/scripts/git-hooks/pre-commit-modernized
T
wehub-resource-sync 161ef94b4f
Sirius CI/CD Pipeline / Merge API Manifest (push) Blocked by required conditions
Sirius CI/CD Pipeline / Build API (${{ matrix.platform }}) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Build UI (${{ matrix.platform }}) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Merge UI Manifest (push) Blocked by required conditions
Sirius CI/CD Pipeline / Build Engine (${{ matrix.platform }}) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Merge Engine Manifest (push) Blocked by required conditions
Sirius CI/CD Pipeline / Build Infra (${{ matrix.service }}, ${{ matrix.platform }}) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Merge Infra Manifest (sirius-postgres) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Merge Infra Manifest (sirius-rabbitmq) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Merge Infra Manifest (sirius-valkey) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Integration Test (push) Blocked by required conditions
Sirius CI/CD Pipeline / Public Stack Contract (push) Blocked by required conditions
Sirius CI/CD Pipeline / Dispatch Demo Deployment (sirius-demo branch) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Dispatch Demo Canary (main branch) (push) Blocked by required conditions
Check engine pin consistency / Dockerfile / CI pin consistency (push) Successful in 8s
Sirius CI/CD Pipeline / Detect Changes (push) Successful in 23s
Sirius CI/CD Pipeline / Guard Registry Namespace (push) Waiting to run
Validate Docker Configuration / Validate Docker Compose Configuration (push) Successful in 47s
chore: import upstream snapshot with attribution
2026-07-13 12:32:25 +08:00

126 lines
3.9 KiB
Bash

#!/bin/bash
# Modernized pre-commit hook for Sirius
# Performs quick validation only - full testing moved to CI
echo "🔍 Running quick pre-commit validation..."
# Check if we're in the right directory
if [ ! -f "docker-compose.yaml" ]; then
echo "❌ Not in Sirius project root directory"
exit 1
fi
# 1. Docker Compose Configuration Validation
echo "🐳 Validating Docker Compose configurations..."
if ! docker compose config --quiet; then
echo "❌ Base Docker Compose configuration is invalid"
exit 1
fi
if ! docker compose -f docker-compose.yaml -f docker-compose.dev.yaml config --quiet; then
echo "❌ Development Docker Compose configuration is invalid"
exit 1
fi
if ! docker compose -f docker-compose.yaml -f docker-compose.prod.yaml config --quiet; then
echo "❌ Production Docker Compose configuration is invalid"
exit 1
fi
echo "✅ All Docker Compose configurations are valid"
# 2. Quick Documentation Validation
echo "📚 Running quick documentation checks..."
if [ -d "testing/container-testing" ]; then
cd testing/container-testing
if ! make lint-docs-quick; then
echo "❌ Documentation validation failed"
exit 1
fi
if ! make lint-index; then
echo "❌ Documentation index validation failed"
exit 1
fi
cd ../..
else
echo "⚠️ Testing directory not found, skipping documentation validation"
fi
echo "✅ Documentation validation passed"
# 3. Check for uncommented volume mounts in docker-compose.override.yaml
echo "🔍 Checking for uncommented volume mounts..."
OVERRIDE_FILE="docker-compose.override.yaml"
if [ -f "$OVERRIDE_FILE" ]; then
if grep -E "^\s*-\s+\.\./minor-projects/" "$OVERRIDE_FILE" > /dev/null; then
echo "⚠️ Found uncommented volume mounts in $OVERRIDE_FILE"
echo "🔧 Automatically commenting them out..."
# Create backup
cp "$OVERRIDE_FILE" "${OVERRIDE_FILE}.backup"
# Comment out the volume mounts
sed -i.tmp 's/^\(\s*\)-\s\+\.\./\1# - \.\./' "$OVERRIDE_FILE"
rm "${OVERRIDE_FILE}.tmp" 2>/dev/null || true
# Re-stage the fixed file
git add "$OVERRIDE_FILE"
echo "✅ Volume mounts have been commented out automatically"
echo "💡 Your local copy has been backed up to ${OVERRIDE_FILE}.backup"
echo "💡 Use docker-compose.local.yaml for local development overrides"
fi
fi
# 4. Check for accidentally committed local files
echo "🔍 Checking for accidentally committed local files..."
if [ -f "docker-compose.local.yaml" ]; then
echo "❌ docker-compose.local.yaml should not be committed"
echo "💡 This file is for local development only and should be git-ignored"
exit 1
fi
if ls docker-compose.*.local.yaml 2>/dev/null; then
echo "❌ Local docker-compose files found:"
ls docker-compose.*.local.yaml
echo "💡 These files should be git-ignored"
exit 1
fi
echo "✅ No local override files found in repository"
# 5. Basic syntax checks for key files
echo "🔍 Running basic syntax checks..."
# Check if package.json is valid JSON
if [ -f "sirius-ui/package.json" ]; then
if ! python3 -m json.tool sirius-ui/package.json > /dev/null 2>&1; then
echo "❌ sirius-ui/package.json is not valid JSON"
exit 1
fi
fi
# Check if go.mod is valid
if [ -f "sirius-api/go.mod" ]; then
if ! go mod verify -modfile=sirius-api/go.mod > /dev/null 2>&1; then
echo "❌ sirius-api/go.mod is not valid"
exit 1
fi
fi
if [ -f "sirius-engine/go.mod" ]; then
if ! go mod verify -modfile=sirius-engine/go.mod > /dev/null 2>&1; then
echo "❌ sirius-engine/go.mod is not valid"
exit 1
fi
fi
echo "✅ Basic syntax checks passed"
echo ""
echo "🎉 Pre-commit validation completed successfully!"
echo "💡 Full testing will run in CI/CD pipeline"
echo "💡 For local testing, run: cd testing/container-testing && make test-all"