-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathMakefile
More file actions
143 lines (119 loc) · 5.96 KB
/
Copy pathMakefile
File metadata and controls
143 lines (119 loc) · 5.96 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
.SILENT:
.PHONY: help
## This help screen
help:
printf "Available commands\n\n"
awk '/^[a-zA-Z\-\_0-9]+:/ { \
helpMessage = match(lastLine, /^## (.*)/); \
if (helpMessage) { \
helpCommand = substr($$1, 0, index($$1, ":")-1); \
helpMessage = substr(lastLine, RSTART + 3, RLENGTH); \
printf "\033[33m%-40s\033[0m %s\n", helpCommand, helpMessage; \
} \
} \
{ lastLine = $$0 }' $(MAKEFILE_LIST)
PROJECT = exposition-text
IMAGE = php80
DOCKER_COMPOSE_OPTIONS = -p $(PROJECT) -f docker-compose.yml
DOCKER_COMPOSE_BASE_COMMAND = docker compose $(DOCKER_COMPOSE_OPTIONS)
DOCKER_COMPOSE_EXEC_COMMAND = $(DOCKER_COMPOSE_BASE_COMMAND) exec -T
DOCKER_COMPOSE_ISOLATED_RUN_COMMAND = $(DOCKER_COMPOSE_BASE_COMMAND) run --rm --no-deps
## Install whole setup
install: dcpull dcbuild composer-install
.PHONY: update
install-static-analysis: dcpull
$(DOCKER_COMPOSE_BASE_COMMAND) build --pull --parallel composer
.PHONY: install-static-analysis
## Update whole setup
update: dcpull dcbuild composer-update
.PHONY: update
## Build all custom docker images
dcbuild: pull-extension-installer
$(DOCKER_COMPOSE_BASE_COMMAND) build --pull --parallel
.PHONY: dcbuild
pull-extension-installer:
docker pull mlocati/php-extension-installer
.PHONY: pull-extension-installer
## Pull docker images
dcpull:
$(DOCKER_COMPOSE_BASE_COMMAND) pull
.PHONY: dcpull
## Tear down docker compose setup
dcdown:
$(DOCKER_COMPOSE_BASE_COMMAND) down
.PHONY: dcdown
## Validate composer config
composer-validate:
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) composer validate
.PHONY: composer-validate
## Update composer dependencies
composer-update:
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) composer update --no-progress -o -vv
.PHONY: composer-update
## Install composer dependencies
composer-install:
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) composer install --no-progress -o -a -vv
.PHONY: composer-install
## Run PHPStan checks
phpstan:
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) phpstan analyze --memory-limit=-1 --level=8 src/
.PHONY: phpstan
## Run all tests on all PHP versions
tests: composer-validate phpstan test-php-7.2 test-php-7.3 test-php-7.4 test-php-8.0 test-php-8.1 test-php-8.2 test-php-8.3 test-php-8.4 test-php-8.5
.PHONY: tests
PHP_OPTIONS = -d error_reporting=-1 -dmemory_limit=-1 -d xdebug.mode=coverage
PHPUNIT_OPTIONS = --testdox
## Run test on PHP 7.2
test-php-7.2: dcdown
printf "\n\033[33mRun Tests on PHP 7.2\033[0m\n"
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php72 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-9.xml --testsuite=Unit $(PHPUNIT_OPTIONS)
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php72 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-9.xml --testsuite=Integration $(PHPUNIT_OPTIONS)
.PHONY: test-php-7.2
## Run test on PHP 7.3
test-php-7.3: dcdown
printf "\n\033[33mRun Tests on PHP 7.3\033[0m\n"
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php73 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-9.xml --testsuite=Unit $(PHPUNIT_OPTIONS)
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php73 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-9.xml --testsuite=Integration $(PHPUNIT_OPTIONS)
.PHONY: test-php-7.3
## Run test on PHP 7.4
test-php-7.4: dcdown
printf "\n\033[33mRun Tests on PHP 7.4\033[0m\n"
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php74 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-9.xml --testsuite=Unit $(PHPUNIT_OPTIONS)
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php74 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-9.xml --testsuite=Integration $(PHPUNIT_OPTIONS)
.PHONY: test-php-7.4
## Run test on PHP 8.0
test-php-8.0: dcdown
printf "\n\033[33mRun Tests on PHP 8.0\033[0m\n"
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php80 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-9.xml --testsuite=Unit $(PHPUNIT_OPTIONS)
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php80 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-9.xml --testsuite=Integration $(PHPUNIT_OPTIONS)
.PHONY: test-php-8.0
## Run test on PHP 8.1
test-php-8.1: dcdown
printf "\n\033[33mRun Tests on PHP 8.1\033[0m\n"
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php81 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-10.xml --testsuite=Unit $(PHPUNIT_OPTIONS)
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php81 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-10.xml --testsuite=Integration $(PHPUNIT_OPTIONS)
.PHONY: test-php-8.1
## Run test on PHP 8.2
test-php-8.2: dcdown
printf "\n\033[33mRun Tests on PHP 8.2\033[0m\n"
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php82 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-10.xml --testsuite=Unit $(PHPUNIT_OPTIONS)
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php82 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-10.xml --testsuite=Integration $(PHPUNIT_OPTIONS)
.PHONY: test-php-8.2
## Run test on PHP 8.3
test-php-8.3: dcdown
printf "\n\033[33mRun Tests on PHP 8.3\033[0m\n"
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php83 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-10.xml --testsuite=Unit $(PHPUNIT_OPTIONS)
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php83 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-10.xml --testsuite=Integration $(PHPUNIT_OPTIONS)
.PHONY: test-php-8.3
## Run test on PHP 8.4
test-php-8.4: dcdown
printf "\n\033[33mRun Tests on PHP 8.4\033[0m\n"
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php84 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-10.xml --testsuite=Unit $(PHPUNIT_OPTIONS)
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php84 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-10.xml --testsuite=Integration $(PHPUNIT_OPTIONS)
.PHONY: test-php-8.4
## Run test on PHP 8.5
test-php-8.5: dcdown
printf "\n\033[33mRun Tests on PHP 8.5\033[0m\n"
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php85 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-10.xml --testsuite=Unit $(PHPUNIT_OPTIONS)
$(DOCKER_COMPOSE_ISOLATED_RUN_COMMAND) php85 php $(PHP_OPTIONS) /usr/local/bin/phpunit -c tests/phpunit-10.xml --testsuite=Integration $(PHPUNIT_OPTIONS)
.PHONY: test-php-8.5