mirror of
https://github.com/klaussilveira/gitlist.git
synced 2026-01-10 17:42:43 +01:00
107 lines
2.8 KiB
Makefile
107 lines
2.8 KiB
Makefile
.PHONY: help
|
|
.DEFAULT_GOAL := help
|
|
NAME := gitlist
|
|
VERSION := $(shell git show -s --format=%h)
|
|
DOCKER_COMPOSE ?= docker compose
|
|
EXEC_DOCKER ?= $(DOCKER_COMPOSE) exec -T
|
|
EXEC_PHP ?= $(EXEC_DOCKER) php-fpm
|
|
EXEC_NODE ?= $(EXEC_DOCKER) node
|
|
EXEC_WEB ?= $(EXEC_DOCKER) web
|
|
|
|
help: # Display the application manual
|
|
@echo "$(NAME) version \033[33m$(VERSION)\n\e[0m"
|
|
@echo "\033[1;37mUSAGE\e[0m"
|
|
@echo " \e[4mmake\e[0m <command> [<arg1>] ... [<argN>]\n"
|
|
@echo "\033[1;37mAVAILABLE COMMANDS\e[0m"
|
|
@grep -E '^[a-zA-Z_-]+:.*?# .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?# "}; {printf " \033[32m%-20s\033[0m %s\n", $$1, $$2}'
|
|
|
|
check-deps: check-local-overrides
|
|
@if ! [ -x "$$(command -v docker)" ]; then\
|
|
echo '\n\033[0;31mdocker is not installed.';\
|
|
exit 1;\
|
|
else\
|
|
echo "\033[0;32mdocker installed\033[0m";\
|
|
fi
|
|
|
|
setup: check-deps # Setup dependencies and development configuration
|
|
$(DOCKER_COMPOSE) pull || true
|
|
$(DOCKER_COMPOSE) up -d --build
|
|
$(EXEC_PHP) composer install
|
|
|
|
up: # Create and start containers
|
|
$(DOCKER_COMPOSE) up -d
|
|
|
|
clean: # Cleanup containers and build artifacts
|
|
$(DOCKER_COMPOSE) down
|
|
$(MAKE) setup
|
|
|
|
bash: # Start a bash session in the PHP container
|
|
$(EXEC_PHP) /bin/bash
|
|
|
|
test: # Run automated test suite
|
|
$(EXEC_PHP) composer test
|
|
$(EXEC_NODE) npm run test
|
|
|
|
acceptance: # Run acceptance test suite
|
|
$(EXEC_NODE) npm run cypress
|
|
|
|
show-app: # Open application in your browser
|
|
xdg-open http://$$(docker compose port webserver 80)/
|
|
|
|
update: # Update dependencies
|
|
$(EXEC_PHP) composer update
|
|
|
|
format: # Run code style autoformatter
|
|
$(EXEC_PHP) composer format
|
|
|
|
build: # Build application package
|
|
@rm -rf vendor/
|
|
@rm -rf public/assets/*
|
|
@composer install --ignore-platform-reqs --no-dev --no-scripts -o
|
|
@npm run build
|
|
@zip ./build.zip \
|
|
-r * .[^.]* \
|
|
-x '.github/*' \
|
|
-x 'bin/*' \
|
|
-x 'docker/*' \
|
|
-x 'node_modules/*' \
|
|
-x 'tests/' \
|
|
-x 'var/cache/*' \
|
|
-x 'var/log/*' \
|
|
-x '.dockerignore' \
|
|
-x '.editorconfig' \
|
|
-x '.env' \
|
|
-x '.env.dist' \
|
|
-x '.git/*' \
|
|
-x '.gitignore' \
|
|
-x '.php-cs-fixer.cache' \
|
|
-x '.php-cs-fixer.php' \
|
|
-x '.phpunit.result.cache' \
|
|
-x '.prettierrc' \
|
|
-x 'composer.json' \
|
|
-x 'composer.lock' \
|
|
-x 'docker-compose.override.yml' \
|
|
-x 'docker-compose.override.yml.dist' \
|
|
-x 'docker-compose.yml' \
|
|
-x 'Makefile' \
|
|
-x 'package-lock.json' \
|
|
-x 'package.json' \
|
|
-x 'phpstan.neon' \
|
|
-x 'phpunit.xml.dist' \
|
|
-x 'postcss.config.js' \
|
|
-x 'webpack.config.js' \
|
|
|
|
fix-perms:
|
|
sudo setfacl -R -m u:root:rwX -m u:`whoami`:rwX var/cache var/log vendor/
|
|
sudo setfacl -dR -m u:root:rwx -m u:`whoami`:rwx var/cache var/log vendor/
|
|
|
|
check-local-overrides:
|
|
@$(MAKE) --quiet .env
|
|
@$(MAKE) --quiet docker-compose.override.yml
|
|
|
|
docker-compose.override.yml:
|
|
@ln -s --backup=none docker-compose.override.yml.dist $@
|
|
|
|
.env:
|
|
@ln -s --backup=none .env.dist $@
|