runx/makefile
Chicory fc69b67809
All checks were successful
Build and test. / build (push) Successful in 17s
Build and test. / test (push) Successful in 16s
Build and test. / cleanup (push) Successful in 6s
#9 PHP CS Fixer setup
2025-08-26 15:51:43 +03:00

84 lines
2.2 KiB
Makefile

.DEFAULT_GOAL := help
UID = $(shell id -u)
GID = $(shell id -g)
DOCKER_HUB_USER ?= runxdevelop
IMAGE_NAME ?= runx
IMAGE_TAG ?= latest
BUILD_TAG ?= $(DOCKER_HUB_USER)/$(IMAGE_NAME):$(IMAGE_TAG)
CONTAINER_NAME ?= $(DOCKER_HUB_USER)-$(IMAGE_NAME)-$(IMAGE_TAG)
DOCKER_COMPOSE = docker-compose -f docker/docker-compose.yaml
help: ## Show this help.
@awk 'BEGIN {FS = ":.*##";} /^[a-zA-Z]/ && !/\?=/ {printf " \033[32m%-15s\033[90m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
up: ## Start dev environment.
@${DOCKER_COMPOSE} up -d --build
down: ## Stop dev environment.
@${DOCKER_COMPOSE} down
restart: ## Restart dev environment.
@${DOCKER_COMPOSE} restart
exec: ## Container shell
@${DOCKER_COMPOSE} exec app bash
cs-fix: ## Fix code style.
@${DOCKER_COMPOSE} exec app composer cs-fix
cs-check: ## Check code style.
@${DOCKER_COMPOSE} exec app composer cs-check
analyze: ## Analyze code.
@${DOCKER_COMPOSE} exec app composer analyze
test: ## Run tests.
@${DOCKER_COMPOSE} exec app composer test
build: clear ## Build image.
@docker build --tag="$(BUILD_TAG)" \
--build-arg UID=$(UID) \
--build-arg GID=$(GID) \
-f docker/dockerfile .
push: build ## Publish image.
@docker logout
@docker login --username=$(DOCKERHUB_USER)
@docker push $(BUILD_TAG)
clear: ## Cleanup.
@docker rmi -f $(BUILD_TAG)
@docker rm -vf $(CONTAINER_NAME)
vscode-xdebug: ## Publish vscode xdebug config.
@mkdir -p .vscode
@cp docker/conf/launch.json .vscode/launch.json
ci-build: ## CI - Build image
@docker build --tag="$(BUILD_TAG)" \
--build-arg UID=$(UID) \
--build-arg GID=$(GID) \
--build-arg DEBUG=false \
--build-arg BUILD_MODE=dev \
-f docker/dockerfile .
ci-run: ## CI - Run image
@docker run -d -p 8888:80 --name $(CONTAINER_NAME) $(BUILD_TAG)
ci-cs: ## CI - Check code style
@docker run --rm -p 8888:80 --name $(CONTAINER_NAME) $(BUILD_TAG) composer cs-check
ci-analyze: ## CI - Analyze code
@docker run --rm -p 8888:80 --name $(CONTAINER_NAME) $(BUILD_TAG) composer analyze
ci-test: ## CI - Run tests
@docker run --rm -p 8888:80 --name $(CONTAINER_NAME) $(BUILD_TAG) composer test
ci-rm: ## CI - Remove container and image
@docker rm -vf $(CONTAINER_NAME) || true
@docker rmi -f $(BUILD_TAG) || true