You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.1 KiB
87 lines
2.1 KiB
# Build configuration
|
|
# -------------------
|
|
|
|
APP_NAME := `sed -n 's/^ *name.*=.*"\([^"]*\)".*/\1/p' pyproject.toml`
|
|
APP_VERSION := `sed -n 's/^ *version.*=.*"\([^"]*\)".*/\1/p' pyproject.toml`
|
|
GIT_REVISION = `git rev-parse HEAD`
|
|
|
|
# Introspection targets
|
|
# ---------------------
|
|
|
|
.PHONY: help
|
|
help: header targets
|
|
|
|
.PHONY: header
|
|
header:
|
|
@echo "\033[34mEnvironment\033[0m"
|
|
@echo "\033[34m---------------------------------------------------------------\033[0m"
|
|
@printf "\033[33m%-23s\033[0m" "APP_NAME"
|
|
@printf "\033[35m%s\033[0m" $(APP_NAME)
|
|
@echo ""
|
|
@printf "\033[33m%-23s\033[0m" "APP_VERSION"
|
|
@printf "\033[35m%s\033[0m" $(APP_VERSION)
|
|
@echo ""
|
|
@printf "\033[33m%-23s\033[0m" "GIT_REVISION"
|
|
@printf "\033[35m%s\033[0m" $(GIT_REVISION)
|
|
@echo "\n"
|
|
|
|
.PHONY: targets
|
|
targets:
|
|
@echo "\033[34mDevelopment Targets\033[0m"
|
|
@echo "\033[34m---------------------------------------------------------------\033[0m"
|
|
@perl -nle'print $& if m{^[a-zA-Z_-]+:.*?## .*$$}' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-22s\033[0m %s\n", $$1, $$2}'
|
|
|
|
# Development targets
|
|
# -------------
|
|
|
|
.PHONY: install
|
|
install: ## Install dependencies
|
|
uv add pyproject.toml
|
|
|
|
|
|
.PHONY: run
|
|
run: start
|
|
|
|
.PHONY: start
|
|
start: ## Starts the server
|
|
python run.py
|
|
|
|
# Check, lint and format targets
|
|
# ------------------------------
|
|
|
|
.PHONY: check
|
|
check: check-format lint
|
|
|
|
.PHONY: check-format
|
|
check-format: ## Dry-run code formatter
|
|
black ./ --check
|
|
isort ./ --profile black --check
|
|
|
|
.PHONY: lint
|
|
lint: ## Run ruff
|
|
ruff check ./app
|
|
|
|
.PHONY: format
|
|
format: ## Run code formatter
|
|
black ./
|
|
isort ./ --profile black
|
|
|
|
|
|
.PHONY: test
|
|
test: ## Run the test suite
|
|
$(eval include .env)
|
|
$(eval export $(sh sed 's/=.*//' .env))
|
|
pytest -vv -s --cache-clear ./
|
|
|
|
.PHONY: clean-db
|
|
clean-db: ## 删除migrations文件夹和db.sqlite3
|
|
find . -type d -name "migrations" -exec rm -rf {} +
|
|
rm -f db.sqlite3 db.sqlite3-shm db.sqlite3-wal
|
|
|
|
.PHONY: migrate
|
|
migrate: ## 运行aerich migrate命令生成迁移文件
|
|
aerich migrate
|
|
|
|
.PHONY: upgrade
|
|
upgrade: ## 运行aerich upgrade命令应用迁移
|
|
aerich upgrade
|