Skip to content

Makefile Reference

Run make help to see all targets with descriptions.


Setup

Target What it does
make setup Full first-time setup: fix-path + install-ef + migrate + seed + mock + backend + smoke
make fix-path Adds DOTNET_ROOT to ~/.zshrc
make install-ef Installs dotnet-ef 6.0 global tool
make check Shows live health of backend, mock API, and database

Build & test

Target What it does
make build dotnet build — compile the solution
make test dotnet test — run all 95 unit tests
make smoke Runs scripts/smoke-test.sh — 10 integration assertions against live stack

Database

Target What it does
make migrate Runs scripts/migrate.sh — applies pending migrations for both contexts
make migrate-status Shows applied vs pending migrations
make seed Runs scripts/seed-test-data.sh — upserts API_Base_URL + 5 test AWBs
make db-shell Opens psql to dms-layered
make db-status Shows table row counts + migration summary

Services

Target What it does
make dev Start mock API + backend (background) + smoke tests
make dev-stop Stop backend + mock API
make mock Start mock API in background (logs → /tmp/dms-mock.log)
make mock-stop pkill -f mock_meesho_server.py
make backend Start backend in foreground (Ctrl+C to stop)
make backend-bg Start backend in background (logs → /tmp/dms-backend.log); polls health for 30 s
make backend-stop pkill -9 -f dotnet.*distribution-management

Logs

Target What it does
make logs-backend tail -f /tmp/dms-backend.log
make logs-mock tail -f /tmp/dms-mock.log

Docker

Target What it does
make docker-up docker compose up -d --build — build all images + start stack
make docker-down docker compose down — stop (preserves DB volume)
make docker-clean docker compose down -v — stop + delete DB volume
make docker-smoke Smoke tests against Docker stack
make docker-logs docker compose logs -f — stream all logs
make docker-shell-db docker compose exec postgres psql ...

Environment variables used by Makefile

Variable Default Purpose
DOTNET $(HOME)/.dotnet/dotnet Path to .NET SDK binary
EF $(HOME)/.dotnet/tools/dotnet-ef Path to dotnet-ef tool
PG_BIN /Library/PostgreSQL/16/bin Path to PostgreSQL binaries
PG_PASS 3edc#EDC PostgreSQL password (local dev only)
BACKEND_URL http://localhost:5269 Backend health check URL
MOCK_URL http://localhost:5000 Mock API health check URL

The # in the password

3edc#EDC contains a # which starts a comment in Makefiles. The Makefile uses HASH := \# to escape this. If you override PG_PASS, quote the value in shell invocations: make migrate PG_PASS='your#pass'.