1- dir =${CURDIR}
21export COMPOSE_PROJECT_NAME =environment3
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,31 +121,66 @@ 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-nginx :
74- @docker-compose $(project ) exec nginx /bin/sh
138+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
139+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec nginx /bin/sh
140+ else
141+ $(ERROR_ONLY_FOR_HOST)
142+ endif
75143
76144ssh-supervisord :
77- @docker-compose $(project ) exec supervisord bash
145+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
146+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec supervisord bash
147+ else
148+ $(ERROR_ONLY_FOR_HOST)
149+ endif
78150
79151ssh-mysql :
80- @docker-compose $(project ) exec mysql bash
152+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
153+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec mysql bash
154+ else
155+ $(ERROR_ONLY_FOR_HOST)
156+ endif
81157
82158exec :
83- @docker-compose $(project ) exec $(optionT ) $(laravel_user ) laravel $$ 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) laravel $$cmd
163+ endif
84164
85165exec-bash :
86- @docker-compose $(project ) exec $(optionT ) $(laravel_user ) laravel 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) laravel bash -c "$(cmd)"
170+ endif
87171
88172exec-by-root :
89- @docker-compose $(project ) exec $(optionT ) laravel $$ cmd
173+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
174+ @HOST_UID=$(HOST_UID) HOST_GID=$(HOST_GID) docker-compose $(PROJECT_NAME) exec $(OPTION_T) laravel $$cmd
175+ else
176+ $(ERROR_ONLY_FOR_HOST)
177+ endif
90178
91179report-prepare :
92- mkdir -p $( dir ) / reports/coverage
180+ @make exec cmd= " mkdir -p reports/coverage"
93181
94182report-clean :
95- rm -rf $( dir ) / reports/*
183+ @make exec-by-root cmd= " rm -rf reports/*"
96184
97185wait-for-db :
98186 @make exec cmd=" php artisan db:wait"
@@ -115,16 +203,32 @@ info:
115203 @make exec cmd=" php --version"
116204
117205logs :
206+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
118207 @docker logs -f ${COMPOSE_PROJECT_NAME}_laravel
208+ else
209+ $(ERROR_ONLY_FOR_HOST)
210+ endif
119211
120212logs-nginx :
213+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
121214 @docker logs -f ${COMPOSE_PROJECT_NAME}_nginx
215+ else
216+ $(ERROR_ONLY_FOR_HOST)
217+ endif
122218
123219logs-supervisord :
220+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
124221 @docker logs -f ${COMPOSE_PROJECT_NAME}_supervisord
222+ else
223+ $(ERROR_ONLY_FOR_HOST)
224+ endif
125225
126226logs-mysql :
227+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
127228 @docker logs -f ${COMPOSE_PROJECT_NAME}_mysql
229+ else
230+ $(ERROR_ONLY_FOR_HOST)
231+ endif
128232
129233drop-migrate :
130234 @make exec cmd=" php artisan migrate:fresh"
@@ -141,31 +245,22 @@ seed:
141245 @make exec cmd=" php artisan db:seed --force"
142246
143247phpunit :
144- @make exec cmd=" ./vendor/bin/phpunit -c phpunit.xml --coverage-html reports/coverage $( phpunitOptions ) --coverage-clover reports/clover.xml --log-junit reports/junit.xml"
248+ @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"
145249
146- # ##> php-coveralls ###
147250report-code-coverage : # # update code coverage on coveralls.io. Note: COVERALLS_REPO_TOKEN should be set on CI side.
148251 @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"
149- # ##< php-coveralls ###
150252
151- # ##> phpcs ###
152- phpcs : # # Run PHP CodeSniffer
253+ phpcs : # # Runs PHP CodeSniffer
153254 @make exec-bash cmd=" ./vendor/bin/phpcs --version && ./vendor/bin/phpcs --standard=PSR12 --colors -p app tests"
154- # ##< phpcs ###
155255
156- # ##> ecs ###
157- ecs : # # Run Easy Coding Standard
256+ ecs : # # Runs Easy Coding Standard
158257 @make exec-bash cmd=" ./vendor/bin/ecs --version && ./vendor/bin/ecs --clear-cache check app tests"
159258
160259ecs-fix : # # Run The Easy Coding Standard to fix issues
161260 @make exec-bash cmd=" ./vendor/bin/ecs --version && ./vendor/bin/ecs --clear-cache --fix check app tests"
162- # ##< ecs ###
163-
164- # ##> phpmetrics ###
165- phpmetrics :
166- @make exec-by-root cmd=" make phpmetrics-process"
167261
168- phpmetrics-process : # # Generates PhpMetrics static analysis, should be run inside symfony container
262+ phpmetrics : # # Runs phpmetrics
263+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 1)
169264 @mkdir -p reports/phpmetrics
170265 @if [ ! -f reports/junit.xml ] ; then \
171266 printf "\033[32;49mjunit.xml not found, running tests...\033[39m\n" ; \
@@ -174,28 +269,30 @@ phpmetrics-process: ## Generates PhpMetrics static analysis, should be run insid
174269 @echo "\033[32mRunning PhpMetrics\033[39m"
175270 @php ./vendor/bin/phpmetrics --version
176271 @php ./vendor/bin/phpmetrics --junit=reports/junit.xml --report-html=reports/phpmetrics .
177- # ##< phpmetrics ###
272+ else
273+ @make exec-by-root cmd="make phpmetrics"
274+ endif
178275
179- # ##> php copy/paste detector ###
180- phpcpd :
276+ phpcpd : # # Runs php copy/paste detector
181277 @make exec cmd=" php phpcpd.phar --fuzzy app tests"
182- # ##< php copy/paste detector ###
183278
184- # ##> php mess detector ###
185- phpmd :
279+ phpmd : # # Runs php mess detector
186280 @make exec cmd=" php ./vendor/bin/phpmd app text phpmd_ruleset.xml --suffixes php"
187- # ##< php mess detector ###
188281
189- # ##> PHPStan static analysis tool ###
190- phpstan :
282+ phpstan : # # Runs PHPStan static analysis tool
283+ ifeq ( $( INSIDE_DOCKER_CONTAINER ) , 1)
191284 @echo "\033[32mRunning PHPStan - PHP Static Analysis Tool\033[39m"
192- @make exec cmd=" php artisan cache:clear --env=test"
193- @make exec cmd=" ./vendor/bin/phpstan --version"
194- @make exec cmd=" ./vendor/bin/phpstan analyze app tests"
195- # ##< PHPStan static analysis tool ###
285+ @php artisan cache:clear --env=test
286+ @./vendor/bin/phpstan --version
287+ @./vendor/bin/phpstan analyze app tests
288+ else
289+ @make exec cmd="make phpstan"
290+ endif
196291
197- # ##> Phpinsights PHP quality checks ###
198- phpinsights :
292+ phpinsights : # # Runs Php Insights PHP quality checks
293+ ifeq ( $( INSIDE_DOCKER_CONTAINER ) , 1)
199294 @echo "\033[32mRunning PHP Insights\033[39m"
200- @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"
201- # ##< Phpinsights PHP quality checks ###
295+ @php -d error_reporting=0 ./vendor/bin/phpinsights analyse --no-interaction --min-quality=100 --min-complexity=80 --min-architecture=100 --min-style=100
296+ else
297+ @make exec cmd="make phpinsights"
298+ endif
0 commit comments