-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
116 lines (101 loc) · 3.71 KB
/
Copy pathmakefile
File metadata and controls
116 lines (101 loc) · 3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
.PHONY: setup start stop reset logs clean test lint help update db-user db-order rabbit-listen
## Update dependencies in all services
update:
@echo "📦 Updating shared and service dependencies..."
@set -e; \
if [ -f "shared/composer.json" ]; then \
echo "→ Updating shared package..."; \
(cd shared && composer update --no-interaction --prefer-dist); \
fi; \
for service in services/*; do \
if [ -f "$$service/composer.json" ]; then \
echo "→ Updating $$service..."; \
(cd "$$service" && composer update --no-interaction --prefer-dist); \
fi; \
done
@echo "✅ All dependencies updated successfully."
## Setup project environment
setup:
@echo "🚀 Setting up microservices environment..."
@cp -n .env.example .env || true
@cp -n services/order-service/.env.example services/order-service/.env || true
@cp -n services/user-service/.env.example services/user-service/.env || true
@cp -n services/notification-service/.env.example services/notification-service/.env || true
@echo "✅ Environment files created from examples"
## Start all services
start:
@echo "🐳 Starting all services..."
docker-compose up -d --build
## run listener
rabbit-listen:
@docker-compose exec notification-service php bin/console messenger:consume async
## Stop all services
stop:
@echo "🛑 Stopping services..."
docker-compose down
## Show logs
logs:
docker-compose logs -f
## Clean up (remove containers, volumes)
clean:
@echo "🧹 Cleaning up..."
docker-compose down -v
@rm -f services/*/.env
@rm -rf services/*/var/ 2>/dev/null || true
## Reset everything and start fresh
reset: clean setup start
## Run PHPUnit tests for all services
test:
@echo "🧪 Running tests for all services..."
@for dir in services/*; do \
if [ -f $$dir/vendor/bin/phpunit ]; then \
echo "→ Testing $$dir"; \
( cd $$dir && APP_ENV=test vendor/bin/phpunit ); \
fi; \
done
## Run PHPStan static analysis
lint:
@echo "🔍 Running PHPStan..."
@for dir in services/*; do \
if [ -f $$dir/vendor/bin/phpstan ]; then \
echo "→ Linting $$dir"; \
( cd $$dir && vendor/bin/phpstan analyse src --level=max ); \
fi; \
done
## Install dependencies for a specific service inside container
composer-install:
@if [ -z "$(service)" ]; then \
echo "❌ Usage: make composer-install service=<service_name>"; \
echo "Example: make composer-install service=user-service"; \
exit 1; \
fi
@echo "📦 Installing dependencies for $(service)..."
@docker compose exec $(service) composer install --no-interaction --prefer-dist --optimize-autoloader
@echo "✅ Dependencies installed for $(service)."
## Update dependencies for a specific service inside container
composer-update:
@if [ -z "$(service)" ]; then \
echo "❌ Usage: make composer-update service=<service_name>"; \
echo "Example: make composer-update service=order-service"; \
exit 1; \
fi
@echo "📦 Updating dependencies for $(service)..."
@docker compose exec $(service) composer update --no-interaction --prefer-dist --optimize-autoloader
@echo "✅ Dependencies updated for $(service)."
db-user:
@docker compose exec user-db psql -U app -d user_service
db-order:
@docker compose exec order-db psql -U app -d order_service
## Show this help
help:
@echo "Available commands:"
@echo " make setup - Create .env files from examples"
@echo " make start - Start all services"
@echo " make stop - Stop all services"
@echo " make logs - Show logs"
@echo " make clean - Remove containers and .env files"
@echo " make reset - Full reset and restart"
@echo " make update - Update dependencies in all services"
@echo " make test - Run test for services"
@echo " make lint - Check services with PhpStan"
@echo " make help - Show this help"