|
| 1 | +include .env |
| 2 | +export |
| 3 | + |
| 4 | +sources = bin/console config src |
| 5 | +version = $(shell git describe --tags --dirty --always) |
| 6 | +build_name = application-$(version) |
| 7 | +# use the rest as arguments for "run" |
| 8 | +RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) |
| 9 | +# ...and turn them into do-nothing targets |
| 10 | +#$(eval $(RUN_ARGS):;@:) |
| 11 | + |
| 12 | +.PHONY: fix-permission |
| 13 | +fix-permission: ## fix permission for docker env |
| 14 | + sudo chown -R $(shell whoami):$(shell whoami) * |
| 15 | + sudo chown -R $(shell whoami):$(shell whoami) .docker/* |
| 16 | + |
| 17 | +.PHONY: build |
| 18 | +build: ## build environment and initialize composer and project dependencies |
| 19 | + docker build .docker/php$(DOCKER_PHP_VERSION)-cli/ -t $(DOCKER_SERVER_HOST):$(DOCKER_SERVER_PORT)/$(DOCKER_PROJECT_PATH)/php$(DOCKER_PHP_VERSION)-cli:$(DOCKER_IMAGE_VERSION) \ |
| 20 | + --build-arg DOCKER_SERVER_HOST=$(DOCKER_SERVER_HOST) \ |
| 21 | + --build-arg DOCKER_SERVER_PORT=$(DOCKER_SERVER_PORT) \ |
| 22 | + --build-arg DOCKER_PROJECT_PATH=$(DOCKER_PROJECT_PATH) \ |
| 23 | + --build-arg DOCKER_PHP_VERSION=$(DOCKER_PHP_VERSION) \ |
| 24 | + --build-arg DOCKER_IMAGE_VERSION=$(DOCKER_IMAGE_VERSION) |
| 25 | + docker-compose build |
| 26 | + docker-compose run --rm --no-deps php sh -lc 'composer install' |
| 27 | + |
| 28 | +.PHONY: stop |
| 29 | +stop: |
| 30 | + docker-compose stop |
| 31 | + |
| 32 | +.PHONY: composer-install |
| 33 | +composer-install: ## Install project dependencies |
| 34 | + docker-compose run --rm --no-deps php sh -lc 'composer install' |
| 35 | + |
| 36 | +.PHONY: composer-update |
| 37 | +composer-update: ## Update project dependencies |
| 38 | + docker-compose run --rm --no-deps php sh -lc 'composer update' |
| 39 | + |
| 40 | +.PHONY: composer-outdated |
| 41 | +composer-outdated: ## Show outdated project dependencies |
| 42 | + docker-compose run --rm --no-deps php sh -lc 'composer outdated' |
| 43 | + |
| 44 | +.PHONY: composer-validate |
| 45 | +composer-validate: ## Validate composer config |
| 46 | + docker-compose run --rm --no-deps php sh -lc 'composer validate --no-check-publish' |
| 47 | + |
| 48 | +.PHONY: composer |
| 49 | +composer: ## Execute composer command |
| 50 | + docker-compose run --rm --no-deps php sh -lc "composer $(RUN_ARGS)" |
| 51 | + |
| 52 | +.PHONY: phpunit |
| 53 | +phpunit: ## execute project unit tests |
| 54 | + docker-compose run --rm php sh -lc "./vendor/bin/phpunit $(conf)" |
| 55 | + |
| 56 | +.PHONY: style |
| 57 | +style: ## executes php analizers |
| 58 | + docker-compose run --rm --no-deps php sh -lc './vendor/bin/phpstan analyse -l 6 -c phpstan.neon src tests' |
| 59 | + docker-compose run --rm --no-deps php sh -lc './vendor/bin/psalm --config=psalm.xml' |
| 60 | + |
| 61 | +.PHONY: lint |
| 62 | +lint: ## checks syntax of PHP files |
| 63 | + docker-compose run --rm --no-deps php sh -lc './vendor/bin/parallel-lint ./ --exclude vendor --exclude bin/phpunit' |
| 64 | + |
| 65 | +.PHONY: logs |
| 66 | +logs: ## look for service logs |
| 67 | + docker-compose logs -f $(RUN_ARGS) |
| 68 | + |
| 69 | +.PHONY: help |
| 70 | +help: ## Display this help message |
| 71 | + @cat $(MAKEFILE_LIST) | grep -e "^[a-zA-Z_\-]*: *.*## *" | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' |
| 72 | + |
| 73 | +.PHONY: php-shell |
| 74 | +php-shell: ## PHP shell |
| 75 | + docker-compose run --rm php sh -l |
| 76 | + |
| 77 | +unit-tests: ## Run unit-tests suite |
| 78 | + docker-compose run --rm php sh -lc 'vendor/bin/phpunit --testsuite unit-tests' |
| 79 | + |
| 80 | +static-analysis: style coding-standards ## Run phpstan, deprac, easycoding standarts code static analysis |
| 81 | + |
| 82 | +coding-standards: ## Run check and validate code standards tests |
| 83 | + docker-compose run --rm --no-deps php sh -lc 'vendor/bin/ecs check src tests' |
| 84 | + docker-compose run --rm --no-deps php sh -lc 'vendor/bin/phpmd src/ text phpmd.xml' |
| 85 | + |
| 86 | +coding-standards-fixer: ## Run code standards fixer |
| 87 | + docker-compose run --rm --no-deps php sh -lc 'vendor/bin/ecs check src tests --fix' |
| 88 | + |
| 89 | +security-tests: ## The SensioLabs Security Checker |
| 90 | + docker-compose run --rm --no-deps php sh -lc 'vendor/bin/security-checker security:check --end-point=http://security.sensiolabs.org/check_lock' |
| 91 | + |
| 92 | +.PHONY: test lint static-analysis phpunit coding-standards composer-validate |
| 93 | +test: build lint static-analysis coding-standards composer-validate stop ## Run all test suites |
0 commit comments