-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathMakefile
More file actions
88 lines (60 loc) · 2.65 KB
/
Copy pathMakefile
File metadata and controls
88 lines (60 loc) · 2.65 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
PYTHON ?= python3
VENV ?= .venv
PIP := $(VENV)/bin/pip
PY := $(VENV)/bin/python
.PHONY: venv install install-dev train train-optuna test lint serve-fastapi serve-flask smoke-api frontend-build frontend-dev format-all format-python format-prettier export-processed-data export-feature-snapshot eda mlops-monitoring-up mlops-monitoring-down prefect-retrain k8s-render-rolling k8s-render-canary k8s-render-bluegreen terraform-plan-aws terraform-plan-gcp terraform-plan-azure terraform-plan-oci
venv:
$(PYTHON) -m venv $(VENV) --system-site-packages
install: venv
$(PIP) install --no-build-isolation -e .
install-dev: venv
$(PIP) install --no-build-isolation -e '.[dev]'
cd frontend && npm install
train:
PYTHONPATH=src $(PY) -m youtube_success_ml.train --run-all
train-optuna:
PYTHONPATH=src $(PY) -m youtube_success_ml.train --run-all --optuna-trials 25
test:
PYTHONPATH=src $(PY) -m pytest -q
serve-fastapi:
PYTHONPATH=src $(VENV)/bin/uvicorn youtube_success_ml.api.fastapi_app:app --host 0.0.0.0 --port 8000
serve-flask:
PYTHONPATH=src $(PY) -m youtube_success_ml.api.flask_app
smoke-api:
bash scripts/smoke_api.sh
frontend-build:
cd frontend && npm run build
frontend-dev:
cd frontend && npm run dev
format-all:
bash scripts/format_all.sh
format-python:
bash scripts/format_python.sh
format-prettier:
bash scripts/format_prettier.sh
export-processed-data:
PYTHONPATH=src $(PY) analysis/scripts/export_processed_dataset.py --input "data/Global YouTube Statistics.csv" --output "data/global_youtube_statistics_processed.csv"
export-feature-snapshot:
PYTHONPATH=src $(PY) scripts/mlops/export_feature_store_snapshot.py --input "data/Global YouTube Statistics.csv" --output "artifacts/reports/feature_store_snapshot.csv"
eda:
PYTHONPATH=src $(PY) analysis/scripts/run_eda.py --input "data/Global YouTube Statistics.csv" --output-dir artifacts/reports/eda --top-n-countries 20
mlops-monitoring-up:
docker compose -f docker-compose.monitoring.yml up -d
mlops-monitoring-down:
docker compose -f docker-compose.monitoring.yml down
prefect-retrain:
bash scripts/mlops/run_prefect_retraining.sh
k8s-render-rolling:
kubectl kustomize infra/k8s/overlays/rolling
k8s-render-canary:
kubectl kustomize infra/k8s/overlays/canary
k8s-render-bluegreen:
kubectl kustomize infra/k8s/overlays/bluegreen
terraform-plan-aws:
cd infra/terraform/environments/aws && terraform init && terraform plan
terraform-plan-gcp:
cd infra/terraform/environments/gcp && terraform init && terraform plan
terraform-plan-azure:
cd infra/terraform/environments/azure && terraform init && terraform plan
terraform-plan-oci:
cd infra/terraform/environments/oci && terraform init && terraform plan