-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathMakefile
110 lines (92 loc) · 2.87 KB
/
Makefile
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
# Include variables
include .env.dist
-include .env
export
############################################################
# PROJECT ##################################################
############################################################
.PHONY: project
project: install setup
.PHONY: install
install: install-php install-node
.PHONY: install-php
install-php:
composer install
.PHONY: install-node
install-node:
npm install
.PHONY: setup
setup:
cp -n .env.example .env || true
cp -n config/local.neon.dist config/local.neon || true
mkdir -p var/log var/tmp var/tmp/sessions
chmod 0777 var/log var/tmp var/tmp/sessions
.PHONY: clean
clean:
find var/tmp -mindepth 1 ! -name '.gitignore' -type f,d -exec rm -rf {} +
find var/log -mindepth 1 ! -name '.gitignore' -type f,d -exec rm -rf {} +
############################################################
# DEVELOPMENT ##############################################
############################################################
.PHONY: qa
qa: cs phpstan
.PHONY: cs
cs:
ifdef GITHUB_ACTION
vendor/bin/phpcs --standard=ruleset.xml --extensions=php,phpt --tab-width=4 --ignore=tests/tmp -q --report=checkstyle app tests | cs2pr
else
vendor/bin/phpcs --standard=ruleset.xml --extensions=php,phpt --tab-width=4 --ignore=tests/tmp --colors -nsp app tests
endif
.PHONY: csf
csf:
vendor/bin/phpcbf --standard=ruleset.xml --extensions=php,phpt --tab-width=4 --ignore=tests/tmp --colors -nsp app tests
.PHONY: phpstan
phpstan:
vendor/bin/phpstan analyse -c phpstan.neon --memory-limit=512M
.PHONY: tests
tests:
vendor/bin/tester -s -p php --colors 1 -C tests/Cases
.PHONY: coverage
coverage:
ifdef GITHUB_ACTION
vendor/bin/tester -s -p phpdbg --colors 1 -C --coverage coverage.xml --coverage-src app tests/Cases
else
vendor/bin/tester -s -p phpdbg --colors 1 -C --coverage coverage.html --coverage-src app tests/Cases
endif
.PHONY: dev
dev:
NETTE_DEBUG=1 NETTE_ENV=dev php -S 0.0.0.0:8000 -t www
.PHONY: build
build:
npm run build
.PHONY: watch
watch:
npm run watch
############################################################
# DEPLOYMENT ###############################################
############################################################
.PHONY: deploy
deploy:
$(MAKE) clean
$(MAKE) project
$(MAKE) build
$(MAKE) clean
############################################################
# DOCKER ###################################################
############################################################
.PHONY: docker-up
docker-up:
docker compose up
.PHONY: docker-mariadb
docker-mariadb: ## Spin MariaDB docker container
docker run \
-it \
--rm \
-p 3306:3306 \
-v $(CURDIR)/.docker/data/mariadb:/var/lib/mysql \
-v $(CURDIR)/db/init.sql:/docker-entrypoint-initdb.d/init.sql \
-e MYSQL_USER=${DB_USER} \
-e MYSQL_PASSWORD=${DB_PASSWORD} \
-e MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD} \
-e MYSQL_DATABASE=${DB_DATABASE} \
mariadb:10.11