142 lines
5.0 KiB
Makefile
142 lines
5.0 KiB
Makefile
# 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 ""
|