-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
116 lines (94 loc) · 3.22 KB
/
Makefile
File metadata and controls
116 lines (94 loc) · 3.22 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
.PHONY: build up down over test db_init db_migrate db_upgrade local_flask local_react local local_build local_clean local_build_flask local_clean_flask local_build_react local_clean_react sb help
FLASK_ENV ?= development
help:
@echo "Override 'FLASK_ENV' to change environment, e.g.: make up FLASK_ENV=testing"
@echo " "
@echo "up - Docker Compose - Start services."
@echo "build - Docker Compose - Build images."
@echo "down - Docker Compose - Stop services."
@echo "over - Docker Compose - Rebuild and restart services."
@echo " "
@echo "pytest - PyTest - Run tests on Flask."
@echo "sqlite_connect - SQLite - Connect to SQLite if it's running."
@echo "sb - Storybook - Run Storybook."
@echo " "
@echo "db_init - SQLAlchemy - Initialize database."
@echo "db_migrate - SQLAlchemy - Migrate database."
@echo "db_upgrade - SQLAlchemy - Upgrade database."
@echo " "
@echo "local - Flask+React - Run Flask and React locally."
@echo "local_build - Flask+React - Set up local development environment."
@echo "local_clean - Flask+React - Clean up local development environment."
@echo " "
@echo "local_flask - Flask - Run Flask locally."
@echo "local_build_flask - Flask - Set up local Flask development environment."
@echo "local_clean_flask - Flask - Clean up local Flask development environment."
@echo " "
@echo "local_react - React - Run React locally."
@echo "local_build_react - React - Set up local React development environment."
@echo "local_clean_react - React - Clean up local React development environment."
up:
FLASK_ENV=$(FLASK_ENV) docker compose up -d
build:
docker compose build
down:
docker compose down
over: down build up
pytest:
docker compose run api pytest
sqlite_connect:
@dbfile=$$(ls api/*.db 2>/dev/null | head -n 1); \
if [ "$$dbfile" ]; then \
sqlite3 "$$dbfile"; \
else \
echo "No SQLite DB found in the 'api' directory."; \
fi
sb:
cd ui; \
npm run storybook &
db_init:
docker compose run api flask db init
db_migrate:
docker compose run api flask db migrate
db_upgrade:
docker compose run api flask db upgrade
kill_ports:
@for port in 5174 5000; do \
pid=$$(lsof -ti :$$port); \
if [ ! -z "$$pid" ]; then \
kill -9 $$pid; \
fi \
done;
local: kill_ports
@echo "Starting Flask and React locally..."
@. api/venv/bin/activate && \
cd api && flask run & \
FLASK_PID=$$!; \
cd ui && npm run dev & \
REACT_PID=$$!; \
trap 'echo "Cleaning up processes..."; if ps -p $$FLASK_PID > /dev/null; then kill $$FLASK_PID; fi; if ps -p $$REACT_PID > /dev/null; then kill $$REACT_PID; fi' INT; \
wait;
local_build: local_build_flask local_build_react
local_clean: local_clean_flask local_clean_react
local_flask:
@echo "Starting local Flask..."
@. api/venv/bin/activate; \
cd api; \
flask run &
local_react:
@echo "Starting local React..."
@cd ui; npm run dev &
local_build_flask:
cd api; \
python3 -m venv venv; \
. venv/bin/activate; \
pip install --upgrade pip; \
pip install -r requirements.txt
local_clean_flask:
rm -rf api/venv
local_build_react:
cd ui; \
npm install; \
npm update
local_clean_react:
rm -rf ui/node_modules