VENV:=source .venv/bin/activate; ALLURE:=.venv/allure-2.44.0/bin/allure #linux&macos #ALLURE=.venv\allure-2.44.0\bin\allure #Windows NUM_DOWN ?= 1 #make run-dev BUILD=--build BUILD ?= .DEFAULT_GOAL := help .PHONY: help help: @grep -E '(^[a-zA-Z0-9_-]+:.*?##.*$$)|(^##)' Makefile | awk 'BEGIN {FS = ":.*?## "}{printf "[32m%-30s\033[0m %s\n", $$1, $$2}' | sed -e 's/\[32m## /[33m/' | sed -e 's/\[32m/ /' | sed -e 's/\[33m//' ## ## Init section ## .PHONY: run run: ## Run dev local application docker compose -f docker/compose-dev.yaml --env-file configs/.env --profile local up -d && ${VENV} uvicorn main:app --host 0.0.0.0 --port 8000 --reload .PHONY: down down: ## Down dev local db docker compose -f docker/compose-dev.yaml --env-file configs/.env --profile local down .PHONY: run-dev run-dev: ## Run dev application docker compose -f docker/compose-dev.yaml --env-file configs/.env --profile dev up -d ${BUILD} .PHONY: run-prod run-prod: ## Run prod application docker compose -f docker/compose-dev.yaml --env-file configs/.env --profile prod up -d ${BUILD} .PHONY: down-dev down-dev: ## Down dev application docker compose -f docker/compose-dev.yaml --env-file configs/.env --profile dev down .PHONY: down-prod down-prod: ## Down prod application docker compose -f docker/compose-dev.yaml --env-file configs/.env --profile prod down ## ## Migration section ## .PHONY: m_gen m_gen: ## Generate alembic new revision ${VENV} alembic revision --autogenerate .PHONY: m_up m_up: ## Set new alembic revision ${VENV} alembic upgrade head .PHONY: m_down m_down: ## Downgrade alembic revision ${VENV} alembic downgrade -${NUM_DOWN} .PHONY: m_history m_history: ## List history of migrations ${VENV} alembic history .PHONY: m_current m_current: ## Current migration ${VENV} alembic current .PHONY: m_stamp m_stamp: ## Stamp head ${VENV} alembic stamp head ## ## Test section ## .PHONY: test test: ## Run tests ${VENV} pytest .PHONY: allure allure: ## Generate allure report ${VENV} ${ALLURE} generate tests/allure-results/reports --single-file -o tests/allure-results/html --clean .PHONY: coverage coverage: ## Run pytest coverage ${VENV} pytest --cov=src tests/ --cov-report=term-missing .PHONY: clear clear: ## Delete old test results rm -rf ./tests/allure-results/reports