-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
161 lines (126 loc) · 4.65 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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
########################################################################################################################
# Setup commands
########################################################################################################################
# Installs dependencies
install:
poetry install
########################################################################################################################
# Run commands
########################################################################################################################
# Runs application
run:
python server/server.py
# Runs the application with reload flag set
run-reload:
uvicorn app:app --port 5000 --reload
.PHONY: run-reload
# Runs the sms received consumer application
run-sms-received-consumer:
python app/workers/consumers/sms_received/__main__.py
.PHONY: run-reload-sms-received-consumer
# Runs the sms submitted consumer application
run-sms-submitted-consumer:
python app/workers/consumers/sms_submitted/__main__.py
.PHONY: run-reload-sms-submitted-consumer
# Runs the sms sent consumer application
run-sms-sent-consumer:
python app/workers/consumers/sms_sent/__main__.py
.PHONY: run-reload-sms-sent-consumer
# Runs SMS worker
run-sms-worker:
celery -A app.worker.celery_app worker --events -l info -n ujumbe-sms-worker@%n --concurrency=5 -Q sms-queue
# Runs SMS Error worker
run-error-worker:
celery -A app.worker.celery_app worker --events -l info -n ujumbe-dlt-worker@%n --concurrency=5 -Q sms-error-queue
# Runs Analytics worker
run-analytics-worker:
celery -A app.worker.celery_app worker --events -l info -n ujumbe-analytics-worker@%n --concurrency=5 -Q sms-analytics-queue
########################################################################################################################
# Testing commands
########################################################################################################################
# Runs all tests tests
test:
PYTHONPATH=. pytest
.PHONY: test
# Runs integration tests
test-integration:
PYTHONPATH=. pytest tests/integration
.PHONY: test-integration
# Runs integration tests with coverage
test-integration-cover:
PYTHONPATH=. pytest --cov=app tests/integration/
.PHONY: test-integration-cover
# Runs end to end tests
test-e2e:
PYTHONPATH=. pytest tests/e2e
.PHONY: test-e2e
# Runs e2e tests with coverage
test-e2e-cover:
PYTHONPATH=. pytest --cov=app tests/e2e/
.PHONY: test-e2e-cover
# Runs unit tests
test-unit:
PYTHONPATH=. pytest tests/unit
.PHONY: test-unit
# Runs unit tests with coverage
test-unit-cover:
PYTHONPATH=. pytest --cov=app tests/unit/
.PHONY: test-unit-cover
# Runs all tests with coverage
test-cover:
PYTHONPATH=. pytest --cov=app tests/
.PHONY: test-cover
load-test:
locust --config .locust.conf
########################################################################################################################
# Lint and formatting commands
########################################################################################################################
format:
black app
lint:
pylint app
########################################################################################################################
# Generation and build commands
########################################################################################################################
# Builds the buf module
buf-build:
buf build
.PHONY: buf-build
# updates the buf module
buf-update:
buf mod update
.PHONY: buf-update
# generates protobuf messages
buf-generate:
buf generate
.PHONY: buf-generate
########################################################################################################################
# Migration commands
########################################################################################################################
migrate-up:
alembic upgrade head
.PHONY: migrate-up
migrate-down:
alembic downgrade base
.PHONY: migrate-down
migrate-revision:
alembic revision --autogenerate -m "$(ARGS)"
.PHONY: migrate-revision
########################################################################################################################
# DOCKER commands
########################################################################################################################
start-docker:
COMPOSE_PROFILES=database,kafka,monitoring docker compose up
.PHONY: start-docker
# Start Kafka services
start-kafka:
docker compose --profile kafka up
.PHONY: start-kafka
# Start monitoring services
start-monitoring:
docker compose --profile monitoring up
.PHONY: start-monitoring
# Start database services
start-database:
docker compose --profile database up
.PHONY: start-database