.PHONY: help start start-build stop build down ps logs prune-everything db-reset mercure-jwt cache-clear og-cache-clear test-db-setup test-db-reset test .DEFAULT_GOAL := help help: @echo "Available commands:" @echo " make start - Start services without building (uses existing images)" @echo " make start-build - Start services and build images if needed" @echo " make stop - Stop running services" @echo " make build - Build Docker images only" @echo " make down - Stop and remove containers/networks" @echo " make prune-everything - Prune volumes, networks and images (DANGEROUS!)" @echo " make db-reset - Reset the database (drop, create, migrate) (DANGEROUS!)" @echo " make ccp - Clear the production cache" @echo " make cache-clear - Clear all caches (Vite, Symfony, node_modules)" @echo " make og-cache-clear - Clear Open Graph cache only" @echo " make test-db-setup - One-time setup: Create test database and run migrations" @echo " make test-db-reset - Reset test database (drop, create, migrate)" @echo " make test - Run PHPUnit tests" start: docker compose up -d start-build: composer i bun run build docker compose up -d --build stop: docker compose stop build: docker compose build down: docker compose down prune-everything: @echo "WARNING: This will remove ALL containers, volumes, networks and images!" @read -p "Type 'yes' to confirm: " confirm; \ if [ "$$confirm" != "yes" ]; then \ echo "Aborted."; \ exit 1; \ fi docker compose down -v --rmi all --remove-orphans mercure-jwt: @php bin/generate-mercure-jwt.php db-reset: @echo "WARNING: This will DROP and RECREATE the database!" @read -p "Type 'yes' to confirm: " confirm; \ if [ "$$confirm" != "yes" ]; then \ echo "Aborted."; \ exit 1; \ fi bin/console doctrine:database:drop --force --if-exists --no-interaction bin/console doctrine:database:create --if-not-exists --no-interaction bin/console doctrine:migrations:migrate --no-interaction ccp: bin/console cache:clear --no-warmup --env=prod cache-clear: @echo "Clearing all caches..." @rm -rf node_modules/.vite @rm -rf .vite @rm -rf var/og-cache @php bin/console cache:clear --no-warmup @echo "✓ Vite cache cleared" @echo "✓ OG cache cleared" @echo "✓ Symfony cache cleared" @echo "" @echo "Rebuilding assets..." @bun run build @echo "" @echo "✓ All caches cleared and assets rebuilt!" @echo " Next step: Refresh browser with Ctrl+Shift+R" og-cache-clear: @echo "Clearing Open Graph cache..." @rm -rf var/og-cache @echo "✓ OG cache cleared!" @echo " Battle card images will be regenerated on next access" test-db-setup: @echo "Setting up test database..." @bin/console dbal:run-sql "SELECT 1 FROM pg_database WHERE datname='mineseeker_test'" 2>/dev/null | grep -q 1 || \ (bin/console dbal:run-sql "CREATE DATABASE mineseeker_test" && echo "✓ Database 'mineseeker_test' created") @bin/console doctrine:migrations:migrate --env=test --no-interaction --allow-no-migration 2>&1 | grep -v "WARNING" || true @echo "✓ Test database setup complete!" @echo " Database: mineseeker_test" @echo " Run tests with: make test" test-db-reset: @echo "Resetting test database..." @bin/console dbal:run-sql "DROP DATABASE IF EXISTS mineseeker_test" --quiet @bin/console dbal:run-sql "CREATE DATABASE mineseeker_test" --quiet @bin/console doctrine:migrations:migrate --env=test --no-interaction --quiet @echo "✓ Test database reset complete!" @echo " Database: mineseeker_test" @echo " Run tests with: make test" test: @php -d memory_limit=512M bin/phpunit --testdox --colors=always