1- dir =${CURDIR}
21export COMPOSE_PROJECT_NAME =environment4
32
43ifndef APP_ENV
@@ -8,53 +7,107 @@ ifndef APP_ENV
87 endif
98endif
109
11- laravel_user =-u www-data
12- project =-p ${COMPOSE_PROJECT_NAME}
13- service =${COMPOSE_PROJECT_NAME}:latest
14- interactive: =$(shell [ -t 0 ] && echo 1)
15- ifneq ($(interactive ) ,1)
16- optionT=-T
10+ ifndef INSIDE_DOCKER_CONTAINER
11+ INSIDE_DOCKER_CONTAINER = 0
1712endif
18- ifeq ($(GITLAB_CI ) ,1)
13+
14+ HOST_UID := $(shell id -u)
15+ HOST_GID := $(shell id -g)
16+ PHP_USER := -u www-data
17+ PROJECT_NAME := -p ${COMPOSE_PROJECT_NAME}
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
22+ endif
23+ ifeq ($(GITLAB_CI ) , 1)
1924 # Determine additional params for phpunit in order to generate coverage badge on GitLabCI side
20- phpunitOptions= --coverage-text --colors=never
25+ PHPUNIT_OPTIONS := --coverage-text --colors=never
2126endif
2227
2328build :
24- @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
2534
2635build-test :
27- @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
2841
2942build-staging :
30- @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
3148
3249build-prod :
33- @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
3455
3556start :
36- @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
3762
3863start-test :
39- @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
4069
4170start-staging :
42- @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
4376
4477start-prod :
45- @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
4683
4784stop :
48- @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
4990
5091stop-test :
51- @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
5297
5398stop-staging :
54- @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
55104
56105stop-prod :
57- @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
58111
59112restart : stop start
60113restart-test : stop-test start-test
@@ -68,28 +121,59 @@ env-test-ci:
68121 @make exec cmd=" cp ./.env.test-ci ./.env"
69122
70123ssh :
71- @docker-compose $(project ) exec $(optionT ) $(laravel_user ) laravel 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) laravel 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) laravel bash
133+ else
134+ $(ERROR_ONLY_FOR_HOST)
135+ endif
72136
73137ssh-supervisord :
74- @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
75143
76144ssh-mysql :
77- @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
78150
79151exec :
80- @docker-compose $(project ) exec $(optionT ) $(laravel_user ) laravel $$ cmd
152+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 1)
153+ @$$cmd
154+ else
155+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec $(OPTION_T) $(PHP_USER) laravel $$cmd
156+ endif
81157
82158exec-bash :
83- @docker-compose $(project ) exec $(optionT ) $(laravel_user ) laravel bash -c " $( cmd) "
159+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 1)
160+ @bash -c "$(cmd)"
161+ else
162+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec $(OPTION_T) $(PHP_USER) laravel bash -c "$(cmd)"
163+ endif
84164
85165exec-by-root :
86- @docker-compose $(project ) exec $(optionT ) laravel $$ cmd
166+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
167+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec $(OPTION_T) laravel $$cmd
168+ else
169+ $(ERROR_ONLY_FOR_HOST)
170+ endif
87171
88172report-prepare :
89- mkdir -p $( dir ) / reports/coverage
173+ @make exec cmd= " mkdir -p reports/coverage"
90174
91175report-clean :
92- rm -rf $( dir ) / reports/*
176+ @make exec-by-root cmd= " rm -rf reports/*"
93177
94178wait-for-db :
95179 @make exec cmd=" php artisan db:wait"
@@ -112,13 +196,25 @@ info:
112196 @make exec cmd=" php --version"
113197
114198logs :
199+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
115200 @docker logs -f ${COMPOSE_PROJECT_NAME}_laravel
201+ else
202+ $(ERROR_ONLY_FOR_HOST)
203+ endif
116204
117205logs-supervisord :
206+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
118207 @docker logs -f ${COMPOSE_PROJECT_NAME}_supervisord
208+ else
209+ $(ERROR_ONLY_FOR_HOST)
210+ endif
119211
120212logs-mysql :
213+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
121214 @docker logs -f ${COMPOSE_PROJECT_NAME}_mysql
215+ else
216+ $(ERROR_ONLY_FOR_HOST)
217+ endif
122218
123219drop-migrate :
124220 @make exec cmd=" php artisan migrate:fresh"
@@ -135,31 +231,22 @@ seed:
135231 @make exec cmd=" php artisan db:seed --force"
136232
137233phpunit :
138- @make exec cmd=" ./vendor/bin/phpunit -c phpunit.xml --coverage-html reports/coverage $( phpunitOptions ) --coverage-clover reports/clover.xml --log-junit reports/junit.xml"
234+ @make exec cmd=" ./vendor/bin/phpunit -c phpunit.xml --coverage-html reports/coverage $( PHPUNIT_OPTIONS ) --coverage-clover reports/clover.xml --log-junit reports/junit.xml"
139235
140- # ##> php-coveralls ###
141236report-code-coverage : # # update code coverage on coveralls.io. Note: COVERALLS_REPO_TOKEN should be set on CI side.
142237 @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"
143- # ##< php-coveralls ###
144238
145- # ##> phpcs ###
146- phpcs : # # Run PHP CodeSniffer
239+ phpcs : # # Runs PHP CodeSniffer
147240 @make exec-bash cmd=" ./vendor/bin/phpcs --version && ./vendor/bin/phpcs --standard=PSR12 --colors -p app tests"
148- # ##< phpcs ###
149241
150- # ##> ecs ###
151- ecs : # # Run Easy Coding Standard
242+ ecs : # # Runs Easy Coding Standard
152243 @make exec-bash cmd=" ./vendor/bin/ecs --version && ./vendor/bin/ecs --clear-cache check app tests"
153244
154245ecs-fix : # # Run The Easy Coding Standard to fix issues
155246 @make exec-bash cmd=" ./vendor/bin/ecs --version && ./vendor/bin/ecs --clear-cache --fix check app tests"
156- # ##< ecs ###
157-
158- # ##> phpmetrics ###
159- phpmetrics :
160- @make exec-by-root cmd=" make phpmetrics-process"
161247
162- phpmetrics-process : # # Generates PhpMetrics static analysis, should be run inside symfony container
248+ phpmetrics : # # Runs phpmetrics
249+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 1)
163250 @mkdir -p reports/phpmetrics
164251 @if [ ! -f reports/junit.xml ] ; then \
165252 printf "\033[32;49mjunit.xml not found, running tests...\033[39m\n" ; \
@@ -168,28 +255,30 @@ phpmetrics-process: ## Generates PhpMetrics static analysis, should be run insid
168255 @echo "\033[32mRunning PhpMetrics\033[39m"
169256 @php ./vendor/bin/phpmetrics --version
170257 @php ./vendor/bin/phpmetrics --junit=reports/junit.xml --report-html=reports/phpmetrics .
171- # ##< phpmetrics ###
258+ else
259+ @make exec-by-root cmd="make phpmetrics"
260+ endif
172261
173- # ##> php copy/paste detector ###
174- phpcpd :
262+ phpcpd : # # Runs php copy/paste detector
175263 @make exec cmd=" php phpcpd.phar --fuzzy app tests"
176- # ##< php copy/paste detector ###
177264
178- # ##> php mess detector ###
179- phpmd :
265+ phpmd : # # Runs php mess detector
180266 @make exec cmd=" php ./vendor/bin/phpmd app text phpmd_ruleset.xml --suffixes php"
181- # ##< php mess detector ###
182267
183- # ##> PHPStan static analysis tool ###
184- phpstan :
268+ phpstan : # # Runs PHPStan static analysis tool
269+ ifeq ( $( INSIDE_DOCKER_CONTAINER ) , 1)
185270 @echo "\033[32mRunning PHPStan - PHP Static Analysis Tool\033[39m"
186- @make exec cmd=" php artisan cache:clear --env=test"
187- @make exec cmd=" ./vendor/bin/phpstan --version"
188- @make exec cmd=" ./vendor/bin/phpstan analyze app tests"
189- # ##< PHPStan static analysis tool ###
271+ @php artisan cache:clear --env=test
272+ @./vendor/bin/phpstan --version
273+ @./vendor/bin/phpstan analyze app tests
274+ else
275+ @make exec cmd="make phpstan"
276+ endif
190277
191- # ##> Phpinsights PHP quality checks ###
192- phpinsights :
278+ phpinsights : # # Runs Php Insights PHP quality checks
279+ ifeq ( $( INSIDE_DOCKER_CONTAINER ) , 1)
193280 @echo "\033[32mRunning PHP Insights\033[39m"
194- @make exec cmd=" php -d error_reporting=0 ./vendor/bin/phpinsights analyse --no-interaction --min-quality=100 --min-complexity=80 --min-architecture=100 --min-style=100"
195- # ##< Phpinsights PHP quality checks ###
281+ @php -d error_reporting=0 ./vendor/bin/phpinsights analyse --no-interaction --min-quality=100 --min-complexity=80 --min-architecture=100 --min-style=100
282+ else
283+ @make exec cmd="make phpinsights"
284+ endif
0 commit comments