-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
179 lines (145 loc) · 4.76 KB
/
Makefile
File metadata and controls
179 lines (145 loc) · 4.76 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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# ================================================
# KHP-Back - Makefile de développement
# ================================================
# Variables
DC = docker-compose
APP = khp-back
ARTISAN = $(DC) exec $(APP) php artisan
COMPOSER = $(DC) exec $(APP) composer
NPM = $(DC) exec $(APP) npm
VENDOR_BIN = $(DC) exec $(APP) vendor/bin
# Définition des cibles qui ne sont pas des fichiers
.PHONY: help up down restart build exec shell status logs \
migrate migrate-fresh migrate-status \
seed demo-seed lyonnaise-seed rollback test tests coverage \
cs pint larastan analyse \
install composer-update npm-update \
cache-clear optimize fresh reset-minio \
routes clean erd \
buildkhp-back-image
# Cible par défaut
.DEFAULT_GOAL := help
# Aide
help:
@echo "KHP-Back - Commandes disponibles :"
@echo "--------------------------------"
@echo "Gestion des conteneurs :"
@echo " up : Démarrer les conteneurs"
@echo " down : Arrêter les conteneurs"
@echo " restart : Redémarrer les conteneurs"
@echo " build : Construire les images"
@echo " exec, shell : Ouvrir un shell dans le conteneur"
@echo " status : Vérifier l'état des conteneurs"
@echo " logs : Afficher les logs des conteneurs"
@echo "--------------------------------"
@echo "Base de données & Migrations :"
@echo " migrate : Exécuter les migrations"
@echo " migrate-fresh : Rafraîchir la base de données"
@echo " migrate-status: Vérifier le statut des migrations"
@echo " seed : Peupler la base de données"
@echo " demo-seed : Réinitialiser puis lancer le DemoSeeder"
@echo " lyonnaise-seed: Ajouter l'entreprise La Table des Canuts et ses données métiers"
@echo " rollback : Annuler la dernière migration"
@echo "--------------------------------"
@echo "Tests et Qualité de code :"
@echo " test, tests : Exécuter les tests"
@echo " coverage : Générer un rapport de couverture"
@echo " cs, pint : Corriger le style du code"
@echo " larastan, analyse : Analyser le code statiquement"
@echo "--------------------------------"
@echo "Développement :"
@echo " install : Installer les dépendances"
@echo " composer-update : Mettre à jour les dépendances PHP"
@echo " npm-update : Mettre à jour les dépendances JS"
@echo " cache-clear : Nettoyer les caches de l'application"
@echo " optimize : Optimiser l'application"
@echo " fresh : Réinitialiser la BDD et MinIO"
@echo " reset-minio : Réinitialiser le bucket MinIO"
@echo " routes : Lister les routes"
# Gestion des conteneurs
up:
$(DC) up -d
@echo "Serveur disponible sur http://localhost:8000"
up-prod:
$(DC) -f docker-compose.prod.yml up -d
down:
$(DC) down
restart: down up
build:
$(DC) build
buildkhp-back-image:
docker build --no-cache -t khp-back-builded:v0.0.1 -f docker/php/Dockerfile.production .
exec shell:
$(DC) exec $(APP) bash
status:
$(DC) ps
logs:
$(DC) logs -f
# Base de données & Migrations
migrate:
$(ARTISAN) migrate
migrate-fresh:
$(ARTISAN) migrate:fresh
migrate-status:
$(ARTISAN) migrate:status
seed:
$(ARTISAN) db:seed
demo-seed:
$(MAKE) reset-minio
$(ARTISAN) migrate:fresh
$(ARTISAN) db:seed --class=DemoSeeder
@echo "🍽️ Données de démonstration installées sur une base fraîche."
lyonnaise-seed:
$(ARTISAN) db:seed --class=LyonnaiseCompanySeeder
@echo "🥖 Données Lyonnaises prêtes à l'emploi."
rollback:
$(ARTISAN) migrate:rollback
# Tests et Qualité de code
test tests:
$(ARTISAN) test
coverage:
$(DC) exec -e XDEBUG_MODE=coverage $(APP) php artisan test --coverage
cs pint:
$(VENDOR_BIN)/pint
larastan analyse:
$(VENDOR_BIN)/phpstan analyse --memory-limit=2G
# Développement
install:
$(COMPOSER) install
$(NPM) install
composer-update:
$(COMPOSER) update
npm-update:
$(NPM) update
cache-clear:
$(ARTISAN) cache:clear
$(ARTISAN) config:clear
$(ARTISAN) route:clear
$(ARTISAN) view:clear
optimize:
$(ARTISAN) optimize
routes:
$(ARTISAN) route:list
# Réinitialisation complète
fresh: reset-minio
$(ARTISAN) migrate:fresh --seed
# $(ARTISAN) db:seed --class=LyonnaiseCompanySeeder
@echo "🚀 Environnement frais et prêt !"
# Réinitialise le bucket developp dans MinIO
reset-minio:
$(DC) exec $(APP) bash -c '\
mc alias set myminio http://khp-minio:9000 root password && \
if mc ls myminio | grep -q developp; then \
echo "🗑️ Suppression du bucket developp..." && \
mc rb --force myminio/developp; \
fi && \
echo "🆕 Création du bucket developp..." && \
mc mb myminio/developp && \
echo "✅ Bucket developp réinitialisé avec succès."'
# Nettoyage
clean: down
$(DC) rm -f
@echo "🧹 Environnement nettoyé"
erd:
$(ARTISAN) erd:generate
@echo "ERD diagram generated at localhost:8000/laravel-erd"