# SigHej — Makefile # Shortcuts for backend (Python/FastAPI), admin (Next.js) og app (Flutter) # Kræver: docker, docker compose, python 3.11+, node 20+, flutter .DEFAULT_GOAL := help # ─── Colours ─────────────────────────────────────────────────────────────────── CYAN := \033[0;36m RESET := \033[0m # ─── Hjælp ───────────────────────────────────────────────────────────────────── .PHONY: help help: @echo "" @echo " $(CYAN)SigHej — build targets$(RESET)" @echo "" @echo " $(CYAN)Dev environment$(RESET)" @echo " make up Start alle services (docker compose)" @echo " make down Stop og fjern containers" @echo " make logs Tail logs fra alle services" @echo " make ps Vis kørende services" @echo "" @echo " $(CYAN)Backend (FastAPI)$(RESET)" @echo " make be-install Installer Python deps (venv)" @echo " make be-dev Kør backend lokalt (uvicorn --reload)" @echo " make be-test Kør pytest" @echo " make be-lint Ruff check + format" @echo " make be-fmt Auto-fix med ruff" @echo "" @echo " $(CYAN)Admin (Next.js)$(RESET)" @echo " make adm-install npm install" @echo " make adm-dev Kør admin lokalt (next dev)" @echo " make adm-build Production build" @echo " make adm-lint ESLint" @echo "" @echo " $(CYAN)App (Flutter)$(RESET)" @echo " make app-get flutter pub get" @echo " make app-analyze flutter analyze" @echo " make app-test flutter test" @echo " make app-android Build APK (debug)" @echo " make app-ios Build iOS (debug, kræver macOS + Xcode)" @echo " make app-setup Første gang: flutter create platform-dirs" @echo "" @echo " $(CYAN)CI / Full check$(RESET)" @echo " make check be-lint + be-test + adm-lint + app-analyze" @echo " make build Docker build af alle services" @echo "" # ─── Docker compose ──────────────────────────────────────────────────────────── .PHONY: up down logs ps build up: docker compose up -d down: docker compose down logs: docker compose logs -f ps: docker compose ps build: docker compose build # ─── Backend ─────────────────────────────────────────────────────────────────── VENV := backend/.venv PYTHON := $(VENV)/bin/python PIP := $(VENV)/bin/pip PYTEST := $(VENV)/bin/pytest RUFF := $(VENV)/bin/ruff $(VENV)/bin/activate: backend/requirements-dev.txt python3 -m venv $(VENV) $(PIP) install --upgrade pip $(PIP) install -r backend/requirements-dev.txt .PHONY: be-install be-dev be-test be-lint be-fmt be-install: $(VENV)/bin/activate be-dev: be-install cd backend && $(abspath $(PYTHON)) -m uvicorn app.main:app --reload --port 8000 be-test: be-install cd backend && $(abspath $(PYTEST)) -v be-lint: be-install $(RUFF) check backend/app backend/tests be-fmt: be-install $(RUFF) check --fix backend/app backend/tests $(RUFF) format backend/app backend/tests # ─── Admin (Next.js) ─────────────────────────────────────────────────────────── .PHONY: adm-install adm-dev adm-build adm-lint adm-install: cd admin && npm install adm-dev: adm-install cd admin && npm run dev adm-build: adm-install cd admin && npm run build adm-lint: adm-install cd admin && npm run lint # ─── App (Flutter) ───────────────────────────────────────────────────────────── .PHONY: app-setup app-get app-analyze app-test app-android app-ios app-setup: @echo "Kører flutter create for at generere platform-dirs..." cd app && flutter create --platforms=android,ios --project-name sighej . @echo "Genskaber vores platform-filer..." cd app && git checkout android/app/src/main/AndroidManifest.xml ios/Runner/Info.plist 2>/dev/null || true app-get: cd app && flutter pub get app-analyze: app-get cd app && flutter analyze --no-fatal-infos app-test: app-get cd app && flutter test app-android: app-get cd app && flutter build apk --debug app-ios: app-get cd app && flutter build ios --debug --no-codesign # ─── CI: fuld check ──────────────────────────────────────────────────────────── .PHONY: check check: be-lint be-test adm-lint app-analyze @echo "" @echo " ✓ Alle checks bestået" @echo ""