1- dir =${CURDIR}
2-
31ifndef APP_ENV
42 include .env
53 # Determine if .env.local file exist
6- ifneq ("$(wildcard .env.local)","")
4+ ifneq ("$(wildcard .env.local)", "")
75 include .env.local
86 endif
97endif
108
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
1822endif
19- ifeq ($(GITLAB_CI ) ,1)
23+ ifeq ($(GITLAB_CI ) , 1)
2024 # 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
2226endif
2327
2428build :
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
2634
2735build-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
2941
3042build-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
3248
3349build-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
3555
3656start :
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
3862
3963start-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
4169
4270start-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
4476
4577start-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
4783
4884stop :
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
5090
5191stop-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
5397
5498stop-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
56104
57105stop-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
59111
60112restart : stop start
61113restart-test : stop-test start-test
@@ -69,31 +121,66 @@ env-staging:
69121 @make exec cmd=" composer dump-env staging"
70122
71123ssh :
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
73136
74137ssh-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
76143
77144ssh-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
79150
80151ssh-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
82157
83158exec :
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
85164
86165exec-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
88171
89172exec-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
91178
92179report-prepare :
93- mkdir -p $( dir ) / reports/coverage
180+ @make exec cmd= " mkdir -p reports/coverage"
94181
95182report-clean :
96- rm -rf $( dir ) / reports/*
183+ @make exec-by-root cmd= " rm -rf reports/*"
97184
98185wait-for-db :
99186 @make exec cmd=" php bin/console db:wait"
@@ -112,16 +199,32 @@ info:
112199 @make exec cmd=" bin/console about"
113200
114201logs :
202+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
115203 @docker logs -f ${COMPOSE_PROJECT_NAME}_symfony
204+ else
205+ $(ERROR_ONLY_FOR_HOST)
206+ endif
116207
117208logs-supervisord :
209+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
118210 @docker logs -f ${COMPOSE_PROJECT_NAME}_supervisord
211+ else
212+ $(ERROR_ONLY_FOR_HOST)
213+ endif
119214
120215logs-mysql :
216+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
121217 @docker logs -f ${COMPOSE_PROJECT_NAME}_mysql
218+ else
219+ $(ERROR_ONLY_FOR_HOST)
220+ endif
122221
123222logs-rabbitmq :
223+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
124224 @docker logs -f ${COMPOSE_PROJECT_NAME}_rabbitmq
225+ else
226+ $(ERROR_ONLY_FOR_HOST)
227+ endif
125228
126229drop-migrate :
127230 @make exec cmd=" php bin/console doctrine:schema:drop --full-database --force"
@@ -142,31 +245,22 @@ messenger-setup-transports:
142245 @make exec cmd=" php bin/console messenger:setup-transports"
143246
144247phpunit :
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"
146249
147- # ##> php-coveralls ###
148250report-code-coverage : # # update code coverage on coveralls.io. Note: COVERALLS_REPO_TOKEN should be set on CI side.
149251 @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 ###
151252
152- # ##> phpcs ###
153- phpcs : # # Run PHP CodeSniffer
253+ phpcs : # # Runs PHP CodeSniffer
154254 @make exec-bash cmd=" ./vendor/bin/phpcs --version && ./vendor/bin/phpcs --standard=PSR12 --colors -p src tests"
155- # ##< phpcs ###
156255
157- # ##> ecs ###
158- ecs : # # Run Easy Coding Standard
256+ ecs : # # Runs Easy Coding Standard
159257 @make exec-bash cmd=" ./vendor/bin/ecs --version && ./vendor/bin/ecs --clear-cache check src tests"
160258
161259ecs-fix : # # Run The Easy Coding Standard to fix issues
162260 @make exec-bash cmd=" ./vendor/bin/ecs --version && ./vendor/bin/ecs --clear-cache --fix check src tests"
163- # ##< ecs ###
164261
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)
170264 @mkdir -p reports/phpmetrics
171265 @if [ ! -f reports/junit.xml ] ; then \
172266 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
175269 @echo "\033[32mRunning PhpMetrics\033[39m"
176270 @php ./vendor/bin/phpmetrics --version
177271 @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
179275
180- # ##> php copy/paste detector ###
181- phpcpd :
276+ phpcpd : # # Runs php copy/paste detector
182277 @make exec cmd=" php phpcpd.phar --fuzzy src tests"
183- # ##< php copy/paste detector ###
184278
185- # ##> php mess detector ###
186- phpmd :
279+ phpmd : # # Runs php mess detector
187280 @make exec cmd=" php ./vendor/bin/phpmd src text phpmd_ruleset.xml --suffixes php"
188- # ##< php mess detector ###
189281
190- # ##> PHPStan static analysis tool ###
191- phpstan :
282+ phpstan : # # Runs PHPStan static analysis tool
283+ ifeq ( $( INSIDE_DOCKER_CONTAINER ) , 1)
192284 @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
197291
198- # ##> Phpinsights PHP quality checks ###
199- phpinsights :
292+ phpinsights : # # Runs Php Insights PHP quality checks
293+ ifeq ( $( INSIDE_DOCKER_CONTAINER ) , 1)
200294 @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