-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
100 lines (71 loc) · 2.56 KB
/
Makefile
File metadata and controls
100 lines (71 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Executables
DOCKER_COMPOSE = docker-compose
PHP_CONTAINER = php
# Main Commands
up:
$(DOCKER_COMPOSE) up -d
down:
$(DOCKER_COMPOSE) down
restart:
$(MAKE) cache-clear
$(MAKE) down
$(MAKE) up
$(MAKE) warmup
build:
$(DOCKER_COMPOSE) up -d --build
shell:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) sh
# Application Setup
install:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) composer install
update:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) composer update
migrate:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) bin/console doctrine:migrations:migrate --no-interaction
seed:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) bin/console doctrine:fixtures:load --no-interaction
db-drop:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) bin/console doctrine:database:drop --if-exists --force
db-create:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) bin/console doctrine:database:create
db-reset: db-drop db-create migrate
init:
$(MAKE) build
$(MAKE) install
$(MAKE) migrate
$(MAKE) seed
# Quality Assurance
test-prepare: db-reset seed
test: test-prepare
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) ./vendor/bin/pest
test-dox: test-prepare
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) ./vendor/bin/pest --testdox -vvv --stop-on-error
test-list: test-prepare
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) ./vendor/bin/pest --list-tests
coverage: test-prepare
$(DOCKER_COMPOSE) exec -e XDEBUG_MODE=coverage $(PHP_CONTAINER) php -d memory_limit=-1 ./vendor/bin/pest --coverage --testdox --colors=always
analyse:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) php -d memory_limit=1024M ./vendor/bin/phpstan analyse
lint:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) ./vendor/bin/pint
# Load Testing (Resets DB -> Seeds Data -> Runs k6)
load-test: test-prepare
docker run --rm -i --add-host=host.docker.internal:host-gateway -v $(CURDIR):/src grafana/k6 run /src/tests/load/reserve-seats.js
# Utils
cache-clear:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) rm -rf var/cache/*
# Observability
up-full: up
$(DOCKER_COMPOSE) -f docker-compose.yml -f docker-compose.observability.yml up -d
down-full: down
$(DOCKER_COMPOSE) -f docker-compose.yml -f docker-compose.observability.yml down
# Worker & Messaging
consume:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) bin/console messenger:consume outbox -vv
consume-failed:
$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) bin/console messenger:consume failed -vv
# Warmup
warmup:
-$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) sh -lc "php bin/console about > /dev/null 2>&1"
-$(DOCKER_COMPOSE) exec $(PHP_CONTAINER) sh -lc "php -r 'file_get_contents(\"http://nginx/api/doc.json\");' > /dev/null 2>&1"
up-warm: up-full warmup