diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 6e2755201..c351f059e 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -50,13 +50,8 @@ Please fork wallabag and work with **the master branch**. All pull requests need to pass the tests and the code needs match the style guide. -To run the tests locally run: +To run the tests locally run `make test`. -- when testing using Docker: `docker-compose run --rm php bin/phpunit` (or `docker-compose run --rm php make test` if you - prefer using `make`) -- otherwise: `bin/phpunit` (or `make test`) +To run the PHP formatter run `make fix-cs`. -To run the PHP formatter: - -- when testing using Docker: `docker-compose run --rm php bin/php-cs-fixer fix` -- otherwise: `php bin/php-cs-fixer fix` +To run the PHPStan static analysis run `make phpstan`. diff --git a/GNUmakefile b/GNUmakefile index 1af36780b..2037be837 100755 --- a/GNUmakefile +++ b/GNUmakefile @@ -11,6 +11,18 @@ else override ENV = prod endif +DOCKER_COMPOSE_RUNNING := $(shell docker-compose ps -q | grep -q . && echo 1 || echo 0) + +ifeq ($(DOCKER_COMPOSE_RUNNING), 1) + PHP := docker compose run --rm php php + PHP_NO_XDEBUG := docker compose run -e XDEBUG_MODE=off --rm php php + YARN := docker compose run --rm php yarn +else + PHP := php + PHP_NO_XDEBUG := XDEBUG_MODE=off php + YARN := yarn +endif + help: ## Display this help menu @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' @@ -25,14 +37,20 @@ dev: build ## Install the latest dev version @./scripts/dev.sh run: ## Run the wallabag built-in server - @php bin/console server:run --env=dev + @$(PHP) bin/console server:run --env=dev build: ## Run webpack - @yarn install - @yarn build:$(ENV) + @$(YARN) install + @$(YARN) build:$(ENV) test: ## Launch wallabag testsuite - XDEBUG_MODE=off php -dmemory_limit=-1 bin/phpunit -v + @$(PHP_NO_XDEBUG) -dmemory_limit=-1 bin/phpunit -v + +fix-cs: ## Run PHP-CS-Fixer + @$(PHP_NO_XDEBUG) bin/php-cs-fixer fix + +phpstan: ## Run PHPStan + @$(PHP_NO_XDEBUG) bin/phpstan analyse release: ## Create a package. Need a VERSION parameter (eg: `make release VERSION=master`). ifndef VERSION @@ -43,6 +61,6 @@ endif deploy: ## Deploy wallabag @bundle exec cap staging deploy -.PHONY: help install update build test release deploy run dev +.PHONY: help install update build test release deploy run dev fix-cs phpstan .DEFAULT_GOAL := install