1
- dir =${CURDIR}
2
1
export COMPOSE_PROJECT_NAME =environment3
3
2
4
3
ifndef APP_ENV
@@ -8,53 +7,107 @@ ifndef APP_ENV
8
7
endif
9
8
endif
10
9
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
17
12
endif
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)
19
24
# 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
21
26
endif
22
27
23
28
build :
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
25
34
26
35
build-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
28
41
29
42
build-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
31
48
32
49
build-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
34
55
35
56
start :
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
37
62
38
63
start-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
40
69
41
70
start-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
43
76
44
77
start-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
46
83
47
84
stop :
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
49
90
50
91
stop-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
52
97
53
98
stop-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
55
104
56
105
stop-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
58
111
59
112
restart : stop start
60
113
restart-test : stop-test start-test
@@ -68,31 +121,66 @@ env-test-ci:
68
121
@make exec cmd=" cp ./.env.test-ci ./.env"
69
122
70
123
ssh :
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
72
136
73
137
ssh-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
75
143
76
144
ssh-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
78
150
79
151
ssh-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
81
157
82
158
exec :
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
84
164
85
165
exec-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
87
171
88
172
exec-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
90
178
91
179
report-prepare :
92
- mkdir -p $( dir ) / reports/coverage
180
+ @make exec cmd= " mkdir -p reports/coverage"
93
181
94
182
report-clean :
95
- rm -rf $( dir ) / reports/*
183
+ @make exec-by-root cmd= " rm -rf reports/*"
96
184
97
185
wait-for-db :
98
186
@make exec cmd=" php artisan db:wait"
@@ -115,16 +203,32 @@ info:
115
203
@make exec cmd=" php --version"
116
204
117
205
logs :
206
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
118
207
@docker logs -f ${COMPOSE_PROJECT_NAME}_laravel
208
+ else
209
+ $(ERROR_ONLY_FOR_HOST)
210
+ endif
119
211
120
212
logs-nginx :
213
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
121
214
@docker logs -f ${COMPOSE_PROJECT_NAME}_nginx
215
+ else
216
+ $(ERROR_ONLY_FOR_HOST)
217
+ endif
122
218
123
219
logs-supervisord :
220
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
124
221
@docker logs -f ${COMPOSE_PROJECT_NAME}_supervisord
222
+ else
223
+ $(ERROR_ONLY_FOR_HOST)
224
+ endif
125
225
126
226
logs-mysql :
227
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 0)
127
228
@docker logs -f ${COMPOSE_PROJECT_NAME}_mysql
229
+ else
230
+ $(ERROR_ONLY_FOR_HOST)
231
+ endif
128
232
129
233
drop-migrate :
130
234
@make exec cmd=" php artisan migrate:fresh"
@@ -141,31 +245,22 @@ seed:
141
245
@make exec cmd=" php artisan db:seed --force"
142
246
143
247
phpunit :
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"
145
249
146
- # ##> php-coveralls ###
147
250
report-code-coverage : # # update code coverage on coveralls.io. Note: COVERALLS_REPO_TOKEN should be set on CI side.
148
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"
149
- # ##< php-coveralls ###
150
252
151
- # ##> phpcs ###
152
- phpcs : # # Run PHP CodeSniffer
253
+ phpcs : # # Runs PHP CodeSniffer
153
254
@make exec-bash cmd=" ./vendor/bin/phpcs --version && ./vendor/bin/phpcs --standard=PSR12 --colors -p app tests"
154
- # ##< phpcs ###
155
255
156
- # ##> ecs ###
157
- ecs : # # Run Easy Coding Standard
256
+ ecs : # # Runs Easy Coding Standard
158
257
@make exec-bash cmd=" ./vendor/bin/ecs --version && ./vendor/bin/ecs --clear-cache check app tests"
159
258
160
259
ecs-fix : # # Run The Easy Coding Standard to fix issues
161
260
@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"
167
261
168
- phpmetrics-process : # # Generates PhpMetrics static analysis, should be run inside symfony container
262
+ phpmetrics : # # Runs phpmetrics
263
+ ifeq ($(INSIDE_DOCKER_CONTAINER ) , 1)
169
264
@mkdir -p reports/phpmetrics
170
265
@if [ ! -f reports/junit.xml ] ; then \
171
266
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
174
269
@echo "\033[32mRunning PhpMetrics\033[39m"
175
270
@php ./vendor/bin/phpmetrics --version
176
271
@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
178
275
179
- # ##> php copy/paste detector ###
180
- phpcpd :
276
+ phpcpd : # # Runs php copy/paste detector
181
277
@make exec cmd=" php phpcpd.phar --fuzzy app tests"
182
- # ##< php copy/paste detector ###
183
278
184
- # ##> php mess detector ###
185
- phpmd :
279
+ phpmd : # # Runs php mess detector
186
280
@make exec cmd=" php ./vendor/bin/phpmd app text phpmd_ruleset.xml --suffixes php"
187
- # ##< php mess detector ###
188
281
189
- # ##> PHPStan static analysis tool ###
190
- phpstan :
282
+ phpstan : # # Runs PHPStan static analysis tool
283
+ ifeq ( $( INSIDE_DOCKER_CONTAINER ) , 1)
191
284
@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
196
291
197
- # ##> Phpinsights PHP quality checks ###
198
- phpinsights :
292
+ phpinsights : # # Runs Php Insights PHP quality checks
293
+ ifeq ( $( INSIDE_DOCKER_CONTAINER ) , 1)
199
294
@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