wallabag/GNUmakefile
2024-11-19 22:09:56 +01:00

66 lines
1.7 KiB
Makefile
Executable file

SHELL=bash
TMP_FOLDER=/tmp
RELEASE_FOLDER=wllbg-release
# ensure the ENV variable is well defined
AVAILABLE_ENV := prod dev test
ifneq ($(filter $(ENV),$(AVAILABLE_ENV)),)
# all good
else
# not good, force it to "prod"
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}'
install: ## Install wallabag with the latest version
@./scripts/install.sh $(ENV)
update: ## Update the wallabag installation to the latest version
@./scripts/update.sh $(ENV)
dev: ENV=dev
dev: build ## Install the latest dev version
@./scripts/dev.sh
run: ## Run the wallabag built-in server
@$(PHP) bin/console server:run --env=dev
build: ## Run webpack
@$(YARN) install
@$(YARN) build:$(ENV)
test: ## Launch wallabag testsuite
@$(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
$(error VERSION is not set)
endif
@./scripts/release.sh $(VERSION) $(TMP_FOLDER) $(RELEASE_FOLDER) $(ENV)
deploy: ## Deploy wallabag
@bundle exec cap staging deploy
.PHONY: help install update build test release deploy run dev fix-cs phpstan
.DEFAULT_GOAL := install