This repository was archived by the owner on May 31, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
63 lines (51 loc) · 1.76 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
.DEFAULT_GOAL := all
poetry_dev_bootstrap_file = .poetry_dev_up_to_date
poetry_prod_bootstrap_file = .poetry_prod_up_to_date
.PHONY: all
all: install-dev
# Build everything needed for deployment in production
.PHONY: build
build: install-prod
.PHONY: install-dev
install-dev: $(poetry_dev_bootstrap_file)
$(poetry_dev_bootstrap_file): poetry.lock
touch $(poetry_dev_bootstrap_file).notyet
poetry install --no-root
poetry install --extras=code_coverage
mv $(poetry_dev_bootstrap_file).notyet $(poetry_dev_bootstrap_file)
@# Remove the prod bootstrap file, since we now have dev deps present.
rm -f $(poetry_prod_bootstrap_file)
# Note this will actually *remove* any dev dependencies, if present
.PHONY: install-prod
install-prod: $(poetry_prod_bootstrap_file)
$(poetry_prod_bootstrap_file): poetry.lock
touch $(poetry_prod_bootstrap_file).notyet
poetry install --no-root --no-dev
mv $(poetry_prod_bootstrap_file).notyet $(poetry_prod_bootstrap_file)
@# Remove the dev bootstrap file, since the `--no-dev` removed any present dev deps
rm -f $(poetry_dev_bootstrap_file)
# Run automatic code formatters/linters that don't require human input
# (might fix a broken `make check`)
.PHONY: fix
fix: install-dev
poetry run black member tests
poetry run isort member tests
.PHONY: check
check: lint test
.PHONY: lint
lint: install-dev
poetry run black --fast --check member tests
poetry run isort --check member tests
poetry run pylint member tests
.PHONY: test
test: install-dev
poetry run coverage run -m pytest
# Production webservers won't run this way, so install dev dependencies
.PHONY: run
run: install-dev
FLASK_APP=autoapp.py poetry run flask run
.PHONY: clean
clean:
rm -f $(poetry_dev_bootstrap_file)
rm -f $(poetry_prod_bootstrap_file)
find . -name '*.pyc' -delete