.DEFAULT_GOAL := help .PHONY: help help: ## Show help @grep -E '^[\.a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \ | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' .PHONY: env_file env_file: ## Generate .gen.env file from env with "LENOCHKA_" prefix. touch .gen.env && env | grep -E '^LENOCHKA_' > ".gen.env" || echo "No env vars" test -f .env && cat .env > .gen.env || echo ".env file not found" .PHONY: build build: env_file ## Build docker container image. docker-compose \ -f ./deploy/docker-compose.yml \ --project-directory . \ build --pull lenochka .PHONY: build_test build-test: ## Build image for tests. docker-compose \ -f ./deploy/docker-compose.test.yml \ --project-directory . \ build --no-cache test_lenochka .PHONY: flake8 flake8: ## Run flake8 check docker-compose \ -f ./deploy/docker-compose.test.yml \ --project-directory . \ run test_lenochka flake8 --count . .PHONY: black black: ## Run black check docker-compose \ -f ./deploy/docker-compose.test.yml \ --project-directory . \ run test_lenochka black --check . .PHONY: mypy mypy: ## Run pytest tests docker-compose \ -f ./deploy/docker-compose.test.yml \ --project-directory . \ run test_lenochka mypy . .PHONY: pytest pytest: ## Run pytest tests docker-compose \ -f ./deploy/docker-compose.test.yml \ --project-directory . \ run test_lenochka pytest -v --cov=lenochka .PHONY: push push: env_file ## Push container to the registry. docker-compose \ -f ./deploy/docker-compose.yml \ --project-directory . \ push lenochka .PHONY: pull pull: env_file ## Download images from docker hub. docker-compose \ -f deploy/docker-compose.yml \ --project-directory . \ pull --ignore-pull-failures lenochka \ || \ docker-compose \ -f deploy/docker-compose.yml \ --project-directory . \ pull lenochka .PHONY: deploy-prod deploy-prod: pull ## deploy container in production. docker-compose \ -f ./deploy/docker-compose.yml \ --project-directory . \ up -d .PHONY: clear-test clear-test: ## Remove containers and images for test docker-compose \ -f ./deploy/docker-compose.test.yml \ --project-directory . \ down --rmi=all