-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
133 lines (102 loc) · 3.39 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
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# -------------------------------------------------------------------------
# build a package for PyPi
# -------------------------------------------------------------------------
SHELL := /bin/bash
export
ifeq ($(OS),Windows_NT)
PYTHON := python.exe
ACTIVATE_VENV := venv\Scripts\activate
else
PYTHON := python3.11
ACTIVATE_VENV := source venv/bin/activate
endif
PIP := $(PYTHON) -m pip
ifneq ("$(wildcard .env)","")
endif
.PHONY: build requirements deps-update deps-init
dev-db:
mysql -uroot -p < memberpress_client/scripts/init-db.sql
dev-up:
brew services start mysql
brew services start redis
dev-down:
brew services stop mysql
brew services stop redis
# ---------------------------------------------------------
# Python
# ---------------------------------------------------------
check-python:
@command -v $(PYTHON) >/dev/null 2>&1 || { echo >&2 "This project requires $(PYTHON) but it's not installed. Aborting."; exit 1; }
python-init:
make check-python
make python-clean && \
$(PYTHON) -m venv venv && \
$(ACTIVATE_VENV) && \
$(PIP) install --upgrade pip && \
$(PIP) install -r requirements/local.txt
python-lint:
make check-python
make pre-commit-run
python-clean:
rm -rf venv
find ./ -name __pycache__ -type d -exec rm -rf {} +
django-server:
$(PYTHON) ./manage.py runserver 0.0.0.0:8000
django-migrate:
$(PYTHON) ./manage.py migrate
$(PYTHON) ./manage.py makemigrations memberpress_client
$(PYTHON) ./manage.py migrate memberpress_client
django-shell:
$(PYTHON) ./manage.py shell_plus
django-quickstart:
pre-commit install
make requirements
make dev-up
make dev-db
make django-migrate
$(PYTHON) ./manage.py createsuperuser
make django-server
django-test:
$(PYTHON) ./manage.py test
requirements:
pre-commit autoupdate
$(PIP) install --upgrade pip wheel pip-tools
pip-compile requirements/common.in
pip-compile requirements/local.in
$(PIP) install -r requirements/common.txt
$(PIP) install -r requirements/local.txt
deps-init:
rm -rf .tox
$(PIP) install --upgrade pip wheel
$(PIP) install --upgrade -r requirements/common.txt -r requirements/local.txt -e .
$(PIP) check
deps-update:
$(PIP) install --upgrade pip-tools pip wheel
$(PYTHON) -m piptools compile --upgrade --resolver backtracking -o ./requirements/common.txt pyproject.toml
$(PYTHON) -m piptools compile --extra dev --upgrade --resolver backtracking -o ./requirements/local.txt pyproject.toml
report:
cloc $(git ls-files)
build:
$(PIP) install --upgrade setuptools wheel twine
$(PIP) install --upgrade build
if [ -d "./build" ]; then sudo rm -r build; fi
if [ -d "./dist" ]; then sudo rm -r dist; fi
if [ -d "./django_memberpress_client.egg-info" ]; then sudo rm -r django_memberpress_client.egg-info; fi
$(PYTHON) -m build --sdist ./
$(PYTHON) -m build --wheel ./
$(PIP) install --upgrade twine
twine check dist/*
# -------------------------------------------------------------------------
# upload to PyPi Test
# https:// ?????
# -------------------------------------------------------------------------
release-test:
make build
twine upload --verbose --skip-existing --repository testpypi dist/*
# -------------------------------------------------------------------------
# upload to PyPi
# https://pypi.org/project/django-memberpress-client/
# -------------------------------------------------------------------------
release-prod:
make build
twine upload --verbose --skip-existing dist/*