diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 40 |
1 files changed, 27 insertions, 13 deletions
@@ -22,6 +22,9 @@ override WEBPACK_FLAGS += $(if $(filter $(ENV),dist),-p) override COMPOSER_FLAGS += $(if $(filter $(ENV),dist),--no-dev --prefer-dist) PREV_ENV_FILE := $(build_dir)/prev_env PREV_ENV := $(strip $(shell cat $(PREV_ENV_FILE) 2>/dev/null)) +HOST := localhost +PORT := 8080 +PHP_FLAGS += $(and $(XDEBUG3),-d xdebug.start_with_request=yes) # Files variables. js_sources := $(wildcard $(js_src_dir)/*.js) @@ -35,11 +38,21 @@ dirs := $(phpcs_dir) $(phpunit_dir) # Default target. This executes everything targets needed to get a fully # working development environment. .PHONY: all -all: $(PREV_ENV_FILE) vendor build +all: vendor build # Build generated files. .PHONY: build -build: VERSION $(PREV_ENV_FILE) $(js_bundles) +build: VERSION $(js_bundles) + +.PHONY: dev +dev: ENV := dev +dev: MAKEFLAGS += j2 +dev: + $(MAKE) serve .watch ENV=$(ENV) + +.PHONY: serve +serve: vendor VERSION + php -S $(HOST):$(PORT) -t ./ $(PHP_FLAGS) # Run webpack in watch mode. .PHONY: watch @@ -63,7 +76,7 @@ sentryrelease: $(MAKE) .sentryrelease ENV=$(ENV) .PHONY: .sentryrelease -.sentryrelease: $(PREV_ENV_FILE) build $(js_srcmaps) +.sentryrelease: build $(js_srcmaps) sentry-cli releases new $(GIT_VERSION) sentry-cli releases set-commits $(GIT_VERSION) --auto sentry-cli releases files $(GIT_VERSION) upload-sourcemaps assets/js --url-prefix '~/assets/js' --rewrite @@ -76,7 +89,7 @@ dist: $(MAKE) .dist ENV=$(ENV) .PHONY: .dist -.dist: distclean $(zip_release) $(js_srcmaps) +.dist: distclean $(zip_release) dist/w_cms_%.zip: all @echo Building Zip release... @@ -109,7 +122,7 @@ dist/w_cms_%.zip: all webpack.config.js # Generate the js bundles (and sourcemaps). -assets/js/%.bundle.js assets/js/%.bundle.js.map: $(js_src_dir)/%.js node_modules webpack.config.js +assets/js/%.bundle.js assets/js/%.bundle.js.map: $(js_src_dir)/%.js node_modules webpack.config.js $(PREV_ENV_FILE) @echo Building JS Bundles... mkdir -p $(dir $@) webpack $< -o $@ --env $(ENV) $(WEBPACK_FLAGS) @@ -137,7 +150,7 @@ endif endif # Install PHP dependencies. -vendor: composer.json composer.lock +vendor: $(PREV_ENV_FILE) composer.json composer.lock @echo Installing PHP dependencies... composer install $(COMPOSER_FLAGS) touch $@ @@ -145,7 +158,8 @@ vendor: composer.json composer.lock # Install JS dependencies. node_modules: package.json package-lock.json @echo Installing JS dependencies... - npm install --loglevel=error + npm install --loglevel=error --also=dev + touch $@ # Clean files generated by `make all`. .PHONY: clean @@ -171,26 +185,26 @@ buildclean: # Run all checks. .PHONY: check -check: vendor lint analyse test +check: lint analyse test # Lint php code with phpcs. .PHONY: lint -lint: $(phpcs_dir) - phpcs --report-full --report-summary --cache=$(phpcs_dir)/result.cache || printf "run 'make fix'\n\n"; exit 1 +lint: $(phpcs_dir) vendor + phpcs --report-full --report-summary --cache=$(phpcs_dir)/result.cache || { printf "run 'make fix'\n\n"; exit 1; } # fix php code with phpcbf. .PHONY: fix -fix: $(phpcs_dir) +fix: $(phpcs_dir) vendor phpcbf || exit 0 # Analyse php code with phpstan. .PHONY: analyse -analyse: +analyse: vendor phpstan analyse # Test php code with phpunit. .PHONY: test -test: $(phpunit_dir) +test: $(phpunit_dir) vendor phpunit # Create dirs if the do not exist |