53 lines
1005 B
Makefile
53 lines
1005 B
Makefile
# =====CONFIG=====
|
|
PYTHON := python3
|
|
# This can't contain spaces (I think)
|
|
VENV := .venv
|
|
# Minimum % coverage for tests to succeed
|
|
MIN_COV := 50
|
|
SRC := setup.py config_skeleton tests
|
|
|
|
|
|
# =====GENERAL=====
|
|
## By default, create the venv
|
|
all: venv
|
|
.PHONY: all
|
|
|
|
## Remove any temporary files
|
|
clean:
|
|
@ rm -rf '$(VENV)'
|
|
.PHONY: clean
|
|
|
|
|
|
# =====BACKEND=====
|
|
## VENV
|
|
### Create the venv
|
|
$(VENV)/bin/activate: setup.cfg
|
|
@ '$(PYTHON)' -m venv '$(VENV)'
|
|
@ '$(VENV)'/bin/pip install -e .[develop]
|
|
|
|
|
|
### Convenient alias for the venv
|
|
venv: $(VENV)/bin/activate
|
|
.PHONY: venv
|
|
|
|
|
|
## Formatting & linting
|
|
### Format the codebase using black
|
|
format: venv
|
|
@ '$(VENV)'/bin/isort $(SRC)
|
|
@ '$(VENV)'/bin/black $(SRC)
|
|
.PHONY: format
|
|
|
|
### Lint using black & flake8
|
|
lint: venv
|
|
@ '$(VENV)'/bin/flake8 $(SRC)
|
|
@ '$(VENV)'/bin/black --check $(SRC)
|
|
@ '$(VENV)'/bin/isort --check $(SRC)
|
|
.PHONY: lint
|
|
|
|
|
|
## Testing
|
|
test: venv
|
|
@ '$(VENV)'/bin/pytest --cov=config_skeleton --cov-fail-under='$(MIN_COV)' tests/
|
|
.PHONY: test
|