1
- dir =${CURDIR}
2
-
3
1
ifndef APP_ENV
4
2
include .env
5
3
# Determine if .env.local file exist
6
- ifneq ("$(wildcard .env.local)","")
4
+ ifneq ("$(wildcard .env.local)", "")
7
5
include .env.local
8
6
endif
9
7
endif
10
8
11
- symfony_user =-u www-data
12
- project =-p ${COMPOSE_PROJECT_NAME}
13
- service =${COMPOSE_PROJECT_NAME}:latest
14
- openssl_bin: =$(shell which openssl)
15
- interactive: =$(shell [ -t 0 ] && echo 1)
16
- ifneq ($(interactive ) ,1)
17
- optionT=-T
9
+ ifndef INSIDE_DOCKER_CONTAINER
10
+ INSIDE_DOCKER_CONTAINER = 0
11
+ endif
12
+
13
+ HOST_UID := $(shell id -u)
14
+ HOST_GID := $(shell id -g)
15
+ PHP_USER := -u www-data
16
+ PROJECT_NAME := -p ${COMPOSE_PROJECT_NAME}
17
+ OPENSSL_BIN := $(shell which openssl)
18
+ INTERACTIVE := $(shell [ -t 0 ] && echo 1)
19
+ ERROR_ONLY_FOR_HOST = @printf "\033[33mThis command for host machine\033[39m\n"
20
+ ifneq ($(INTERACTIVE ) , 1)
21
+ OPTION_T := -T
18
22
endif
19
- ifeq ($(GITLAB_CI ) ,1)
23
+ ifeq ($(GITLAB_CI ) , 1)
20
24
# Determine additional params for phpunit in order to generate coverage badge on GitLabCI side
21
- phpunitOptions= --coverage-text --colors=never
25
+ PHPUNIT_OPTIONS := --coverage-text --colors=never
22
26
endif
23
27
24
28
build :
25
- @docker-compose -f docker-compose.yml build
29
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
30
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose.yml build
31
+ else
32
+ $(ERROR_ONLY_FOR_HOST)
33
+ endif
26
34
27
35
build-test :
28
- @docker-compose -f docker-compose-test-ci.yml build
36
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
37
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose-test-ci.yml build
38
+ else
39
+ $(ERROR_ONLY_FOR_HOST)
40
+ endif
29
41
30
42
build-staging :
31
- @docker-compose -f docker-compose-staging.yml build
43
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
44
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose-staging.yml build
45
+ else
46
+ $(ERROR_ONLY_FOR_HOST)
47
+ endif
32
48
33
49
build-prod :
34
- @docker-compose -f docker-compose-prod.yml build
50
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
51
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose-prod.yml build
52
+ else
53
+ $(ERROR_ONLY_FOR_HOST)
54
+ endif
35
55
36
56
start :
37
- @docker-compose -f docker-compose.yml $(project ) up -d
57
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
58
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose.yml $(PROJECT_NAME) up -d
59
+ else
60
+ $(ERROR_ONLY_FOR_HOST)
61
+ endif
38
62
39
63
start-test :
40
- @docker-compose -f docker-compose-test-ci.yml $(project ) up -d
64
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
65
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose-test-ci.yml $(PROJECT_NAME) up -d
66
+ else
67
+ $(ERROR_ONLY_FOR_HOST)
68
+ endif
41
69
42
70
start-staging :
43
- @docker-compose -f docker-compose-staging.yml $(project ) up -d
71
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
72
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose-staging.yml $(PROJECT_NAME) up -d
73
+ else
74
+ $(ERROR_ONLY_FOR_HOST)
75
+ endif
44
76
45
77
start-prod :
46
- @docker-compose -f docker-compose-prod.yml $(project ) up -d
78
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
79
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose-prod.yml $(PROJECT_NAME) up -d
80
+ else
81
+ $(ERROR_ONLY_FOR_HOST)
82
+ endif
47
83
48
84
stop :
49
- @docker-compose -f docker-compose.yml $(project ) down
85
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
86
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose.yml $(PROJECT_NAME) down
87
+ else
88
+ $(ERROR_ONLY_FOR_HOST)
89
+ endif
50
90
51
91
stop-test :
52
- @docker-compose -f docker-compose-test-ci.yml $(project ) down
92
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
93
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose-test-ci.yml $(PROJECT_NAME) down
94
+ else
95
+ $(ERROR_ONLY_FOR_HOST)
96
+ endif
53
97
54
98
stop-staging :
55
- @docker-compose -f docker-compose-staging.yml $(project ) down
99
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
100
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose-staging.yml $(PROJECT_NAME) down
101
+ else
102
+ $(ERROR_ONLY_FOR_HOST)
103
+ endif
56
104
57
105
stop-prod :
58
- @docker-compose -f docker-compose-prod.yml $(project ) down
106
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
107
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose -f docker-compose-prod.yml $(PROJECT_NAME) down
108
+ else
109
+ $(ERROR_ONLY_FOR_HOST)
110
+ endif
59
111
60
112
restart : stop start
61
113
restart-test : stop-test start-test
@@ -69,31 +121,66 @@ env-staging:
69
121
@make exec cmd=" composer dump-env staging"
70
122
71
123
ssh :
72
- @docker-compose $(project ) exec $(optionT ) $(symfony_user ) symfony bash
124
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
125
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec $(OPTION_T) $(PHP_USER) symfony bash
126
+ else
127
+ $(ERROR_ONLY_FOR_HOST)
128
+ endif
129
+
130
+ ssh-root :
131
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
132
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec $(OPTION_T) symfony bash
133
+ else
134
+ $(ERROR_ONLY_FOR_HOST)
135
+ endif
73
136
74
137
ssh-supervisord :
75
- @docker-compose $(project ) exec supervisord bash
138
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
139
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec supervisord bash
140
+ else
141
+ $(ERROR_ONLY_FOR_HOST)
142
+ endif
76
143
77
144
ssh-mysql :
78
- @docker-compose $(project ) exec mysql bash
145
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
146
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec mysql bash
147
+ else
148
+ $(ERROR_ONLY_FOR_HOST)
149
+ endif
79
150
80
151
ssh-rabbitmq :
81
- @docker-compose $(project ) exec rabbitmq /bin/sh
152
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
153
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec rabbitmq /bin/sh
154
+ else
155
+ $(ERROR_ONLY_FOR_HOST)
156
+ endif
82
157
83
158
exec :
84
- @docker-compose $(project ) exec $(optionT ) $(symfony_user ) symfony $$ cmd
159
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 1)
160
+ @$$cmd
161
+ else
162
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec $(OPTION_T) $(PHP_USER) symfony $$cmd
163
+ endif
85
164
86
165
exec-bash :
87
- @docker-compose $(project ) exec $(optionT ) $(symfony_user ) symfony bash -c " $( cmd) "
166
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 1)
167
+ @bash -c "$(cmd)"
168
+ else
169
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec $(OPTION_T) $(PHP_USER) symfony bash -c "$(cmd)"
170
+ endif
88
171
89
172
exec-by-root :
90
- @docker-compose $(project ) exec $(optionT ) symfony $$ cmd
173
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
174
+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec $(OPTION_T) symfony $$cmd
175
+ else
176
+ $(ERROR_ONLY_FOR_HOST)
177
+ endif
91
178
92
179
report-prepare :
93
- mkdir -p $( dir ) / reports/coverage
180
+ @make exec cmd= " mkdir -p reports/coverage"
94
181
95
182
report-clean :
96
- rm -rf $( dir ) / reports/*
183
+ @make exec-by-root cmd= " rm -rf reports/*"
97
184
98
185
wait-for-db :
99
186
@make exec cmd=" php bin/console db:wait"
@@ -112,16 +199,32 @@ info:
112
199
@make exec cmd=" bin/console about"
113
200
114
201
logs :
202
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
115
203
@docker logs -f ${COMPOSE_PROJECT_NAME}_symfony
204
+ else
205
+ $(ERROR_ONLY_FOR_HOST)
206
+ endif
116
207
117
208
logs-supervisord :
209
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
118
210
@docker logs -f ${COMPOSE_PROJECT_NAME}_supervisord
211
+ else
212
+ $(ERROR_ONLY_FOR_HOST)
213
+ endif
119
214
120
215
logs-mysql :
216
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
121
217
@docker logs -f ${COMPOSE_PROJECT_NAME}_mysql
218
+ else
219
+ $(ERROR_ONLY_FOR_HOST)
220
+ endif
122
221
123
222
logs-rabbitmq :
223
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
124
224
@docker logs -f ${COMPOSE_PROJECT_NAME}_rabbitmq
225
+ else
226
+ $(ERROR_ONLY_FOR_HOST)
227
+ endif
125
228
126
229
drop-migrate :
127
230
@make exec cmd=" php bin/console doctrine:schema:drop --full-database --force"
@@ -142,31 +245,22 @@ messenger-setup-transports:
142
245
@make exec cmd=" php bin/console messenger:setup-transports"
143
246
144
247
phpunit :
145
- @make exec-bash cmd=" rm -rf ./var/cache/test* && bin/console cache:warmup --env=test && ./vendor/bin/phpunit -c phpunit.xml.dist --coverage-html reports/coverage $( phpunitOptions ) --coverage-clover reports/clover.xml --log-junit reports/junit.xml"
248
+ @make exec-bash cmd=" rm -rf ./var/cache/test* && bin/console cache:warmup --env=test && ./vendor/bin/phpunit -c phpunit.xml.dist --coverage-html reports/coverage $( PHPUNIT_OPTIONS ) --coverage-clover reports/clover.xml --log-junit reports/junit.xml"
146
249
147
- # ##> php-coveralls ###
148
250
report-code-coverage : # # update code coverage on coveralls.io. Note: COVERALLS_REPO_TOKEN should be set on CI side.
149
251
@make exec-bash cmd=" export COVERALLS_REPO_TOKEN=${COVERALLS_REPO_TOKEN} && php ./vendor/bin/php-coveralls -v --coverage_clover reports/clover.xml --json_path reports/coverals.json"
150
- # ##< php-coveralls ###
151
252
152
- # ##> phpcs ###
153
- phpcs : # # Run PHP CodeSniffer
253
+ phpcs : # # Runs PHP CodeSniffer
154
254
@make exec-bash cmd=" ./vendor/bin/phpcs --version && ./vendor/bin/phpcs --standard=PSR12 --colors -p src tests"
155
- # ##< phpcs ###
156
255
157
- # ##> ecs ###
158
- ecs : # # Run Easy Coding Standard
256
+ ecs : # # Runs Easy Coding Standard
159
257
@make exec-bash cmd=" ./vendor/bin/ecs --version && ./vendor/bin/ecs --clear-cache check src tests"
160
258
161
259
ecs-fix : # # Run The Easy Coding Standard to fix issues
162
260
@make exec-bash cmd=" ./vendor/bin/ecs --version && ./vendor/bin/ecs --clear-cache --fix check src tests"
163
- # ##< ecs ###
164
261
165
- # ##> phpmetrics ###
166
- phpmetrics :
167
- @make exec-by-root cmd=" make phpmetrics-process"
168
-
169
- phpmetrics-process : # # Generates PhpMetrics static analysis, should be run inside symfony container
262
+ phpmetrics : # # Runs phpmetrics
263
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 1)
170
264
@mkdir -p reports/phpmetrics
171
265
@if [ ! -f reports/junit.xml ] ; then \
172
266
printf "\033[32;49mjunit.xml not found, running tests...\033[39m\n" ; \
@@ -175,28 +269,30 @@ phpmetrics-process: ## Generates PhpMetrics static analysis, should be run insid
175
269
@echo "\033[32mRunning PhpMetrics\033[39m"
176
270
@php ./vendor/bin/phpmetrics --version
177
271
@php ./vendor/bin/phpmetrics --junit=reports/junit.xml --report-html=reports/phpmetrics .
178
- # ##< phpmetrics ###
272
+ else
273
+ @make exec-by-root cmd="make phpmetrics"
274
+ endif
179
275
180
- # ##> php copy/paste detector ###
181
- phpcpd :
276
+ phpcpd : # # Runs php copy/paste detector
182
277
@make exec cmd=" php phpcpd.phar --fuzzy src tests"
183
- # ##< php copy/paste detector ###
184
278
185
- # ##> php mess detector ###
186
- phpmd :
279
+ phpmd : # # Runs php mess detector
187
280
@make exec cmd=" php ./vendor/bin/phpmd src text phpmd_ruleset.xml --suffixes php"
188
- # ##< php mess detector ###
189
281
190
- # ##> PHPStan static analysis tool ###
191
- phpstan :
282
+ phpstan : # # Runs PHPStan static analysis tool
283
+ ifeq ( $( INSIDE_DOCKER_CONTAINER ) , 1)
192
284
@echo "\033[32mRunning PHPStan - PHP Static Analysis Tool\033[39m"
193
- @make exec cmd=" bin/console cache:clear --env=test"
194
- @make exec cmd=" ./vendor/bin/phpstan --version"
195
- @make exec cmd=" ./vendor/bin/phpstan analyze src tests"
196
- # ##< PHPStan static analysis tool ###
285
+ @bin/console cache:clear --env=test
286
+ @./vendor/bin/phpstan --version
287
+ @./vendor/bin/phpstan analyze src tests
288
+ else
289
+ @make exec cmd="make phpstan"
290
+ endif
197
291
198
- # ##> Phpinsights PHP quality checks ###
199
- phpinsights :
292
+ phpinsights : # # Runs Php Insights PHP quality checks
293
+ ifeq ( $( INSIDE_DOCKER_CONTAINER ) , 1)
200
294
@echo "\033[32mRunning PHP Insights\033[39m"
201
- @make exec cmd=" php -d error_reporting=0 ./vendor/bin/phpinsights analyse --no-interaction --min-quality=100 --min-complexity=85 --min-architecture=100 --min-style=100"
202
- # ##< Phpinsights PHP quality checks ###
295
+ @php -d error_reporting=0 ./vendor/bin/phpinsights analyse --no-interaction --min-quality=100 --min-complexity=84 --min-architecture=100 --min-style=100
296
+ else
297
+ @make exec cmd="make phpinsights"
298
+ endif
0 commit comments