-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
147 lines (112 loc) · 3.94 KB
/
Makefile
File metadata and controls
147 lines (112 loc) · 3.94 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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# ==========================================
# GRIDPULSE CLOUD - MAKEFILE
# Automating Docker, Backend, Database, Tests
# ==========================================
# ------------------------------------------
# Docker compose services
# ------------------------------------------
BACKEND_SERVICE=backend
DB_SERVICE=postgres
FRONTEND_SERVICE=frontend
# Containers names
BACKEND_CONTAINER=gridpulse-backend
DB_CONTAINER=gridpulse-postgres
FRONTEND_CONTAINER=gridpulse-frontend
# PostgreSQL volume
DB_VOLUME=pgdata
# ------------------------------------------
# Docker Compose Commands
# ------------------------------------------
up:
docker compose up --build
up-d:
docker compose up -d --build
down:
docker compose down
restart:
docker compose down
docker compose up -d --build
logs:
docker compose logs -f $(BACKEND_SERVICE)
ps:
docker compose ps
# ------------------------------------------
# Environment check
# ------------------------------------------
check-env:
@echo "🔹 Checking critical environment variables in backend container..."
@docker exec -it $(BACKEND_CONTAINER) env | grep -E 'DB_USER|DB_PASS|SPRING_' || \
( echo "❌ Missing critical env vars!" && exit 1 )
@echo "✅ Environment variables OK."
# ------------------------------------------
# PostgreSQL Maintenance
# ------------------------------------------
db-reset:
docker compose down
docker volume rm $(DB_VOLUME)
docker compose up -d --build
@echo "✔ PostgreSQL database reset successfully."
db-shell:
docker exec -it $(DB_CONTAINER) psql -U $$DB_USER -d $$DB_NAME
db-import:
docker exec -i $(DB_CONTAINER) psql -U $$DB_USER -d $$DB_NAME < dump.sql
# ------------------------------------------
# Backend — Build & Test
# ------------------------------------------
build-app:
cd backend && ./mvnw clean package -DskipTests
test-backend:
cd backend && ./mvnw test
clean:
cd backend && ./mvnw clean
# ------------------------------------------
# Backend — Inside Container
# ------------------------------------------
bash:
docker exec -it $(BACKEND_CONTAINER) bash
env:
docker exec -it $(BACKEND_CONTAINER) env
# ------------------------------------------
# Custom Commands (Seeding)
# ------------------------------------------
seed:
docker exec -it $(BACKEND_CONTAINER) java -jar app.jar --seed
# ------------------------------------------
# Frontend — Angular
# ------------------------------------------
test-frontend:
cd frontend && npm test
test-frontend-coverage:
cd frontend && ng test --watch=false --code-coverage
open-coverage-frontend:
@echo "Opening Angular coverage report..."
@xdg-open frontend/coverage/index.html 2>/dev/null || \
start frontend/coverage/index.html 2>/dev/null || \
open frontend/coverage/index.html 2>/dev/null
# ------------------------------------------
# Docker Cleanup
# ------------------------------------------
prune:
docker system prune -f
prune-all:
docker system prune -a -f
# ------------------------------------------
# Help
# ------------------------------------------
help:
@echo "AVAILABLE COMMANDS:"
@echo " make up : Start docker compose with build"
@echo " make up-d : Start in detached mode"
@echo " make down : Stop all services"
@echo " make restart : Restart full stack"
@echo " make logs : Show backend logs"
@echo " make ps : List running containers"
@echo " make db-reset : Reset PostgreSQL database"
@echo " make db-shell : Enter PostgreSQL shell"
@echo " make build-app : Build Spring Boot JAR"
@echo " make test-backend : Run backend tests"
@echo " make bash : Enter backend container"
@echo " make env : Show env vars from container"
@echo " make seed : Run backend seeding"
@echo " make prune : Remove unused Docker resources"
@echo " make prune-all : Deep Docker clean"