-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
117 lines (99 loc) · 2.68 KB
/
Makefile
File metadata and controls
117 lines (99 loc) · 2.68 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
BUILD_NETWORK=chaospizza_default
BUILD_CONTAINER=chaospizza-build
APPLICATION_CONTAINER=chaospizza
.PHONY: venv
venv:
pipenv install --dev
.PHONY: build-image
build-image:
docker build -t $(BUILD_CONTAINER) -f Dockerfile.build .
.PHONY: image
image:
docker build -t $(APPLICATION_CONTAINER) -f Dockerfile .
.PHONY: check
check:
docker run \
--rm $(BUILD_CONTAINER) \
which python pylint pycodestyle pydocstyle pytest >/dev/null 2>&1
.PHONY: lint-pylint
lint-pylint:
@echo "Running pylint..."
docker run \
-v $(PWD)/src:/opt/app:ro \
-v $(PWD)/pylintrc:/etc/pylintrc:ro \
-e DJANGO_SETTINGS_MODULE=config.settings.test \
-e DJANGO_DATABASE_URL=postgresql://fake.invalid/ \
--rm $(BUILD_CONTAINER) \
pylint --rcfile=/etc/pylintrc chaospizza/ config/ util/
.PHONY: lint-pycodestyle
lint-pycodestyle:
@echo "Running pycodestyle..."
docker run \
-v $(PWD)/src:/opt/app:ro \
-v $(PWD)/setup.cfg:/etc/pycodestyle.cfg:ro \
--rm $(BUILD_CONTAINER) \
pycodestyle --config /etc/pycodestyle.cfg chaospizza/ config/ util/
.PHONY: lint-pydocstyle
lint-pydocstyle:
@echo "Running pydocstyle..."
docker run \
-v $(PWD)/src:/opt/app:ro \
-v $(PWD)/setup.cfg:/etc/pydocstyle.cfg:ro \
--rm $(BUILD_CONTAINER) \
pydocstyle --config /etc/pydocstyle.cfg chaospizza/ config/ util/
.PHONY: lint
lint: check lint-pylint lint-pycodestyle lint-pydocstyle
.PHONY: test
test:
@echo "Running pytest with code coverage..."
docker run \
--network $(BUILD_NETWORK) \
-v $(PWD)/src:/opt/app:ro \
-v $(PWD)/pytest.ini:/usr/src/pytest.ini:ro \
-v $(PWD)/coveragerc:/etc/coveragerc:ro \
-v $(PWD)/build/coverage:/tmp/coverage:rw \
-e DJANGO_SETTINGS_MODULE=config.settings.test \
-e DJANGO_DATABASE_URL=$(DJANGO_DATABASE_URL) \
--rm $(BUILD_CONTAINER) \
sh -c "python manage.py collectstatic --no-input; pytest --pythonwarnings=all --cov=chaospizza --cov-report=html --cov-config=/etc/coveragerc $(TESTOPTS)"
.PHONY: dev-shell
dev-shell:
docker run \
-it \
--network $(BUILD_NETWORK) \
-v $(PWD)/src:/opt/app:ro \
-e DJANGO_SETTINGS_MODULE=config.settings.dev \
-e DJANGO_DATABASE_URL=$(DJANGO_DATABASE_URL) \
--rm $(BUILD_CONTAINER) \
sh
.PHONY: start-db
start-db:
docker compose up -d db
.PHONY: migrate
migrate:
docker run \
-it \
--network $(BUILD_NETWORK) \
-v $(PWD)/src:/opt/app:ro \
-e DJANGO_SETTINGS_MODULE=config.settings.dev \
-e DJANGO_DATABASE_URL=$(DJANGO_DATABASE_URL) \
--rm $(BUILD_CONTAINER) \
python manage.py migrate
.PHONY: run
run:
docker compose up app
.PHONY: stop
stop:
docker compose stop
.PHONY: restart
restart: stop start
.PHONY: status
status:
docker compose ps
.PHONY: logs
logs:
docker compose logs -f
.PHONY: clean
clean: stop
-docker compose rm --force
-rm -rf build/