vergabe-teilnahme/Makefile
tegwick 0f4f11a9a2
Some checks failed
Application acceptance / application-tests (pull_request) Failing after 53s
Application acceptance / application-tests (push) Failing after 3s
Gate customer-product releases with application acceptance and hosted reuse checks
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
2026-09-08 13:03:32 +02:00

56 lines
2 KiB
Makefile

.PHONY: help db dev css seed migrate test test-image plan-check lint shell superuser collectstatic sync-whynot-design
.DEFAULT_GOAL := help
help: ## List available make targets
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
| awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-16s\033[0m %s\n", $$1, $$2}'
db: ## Start PostgreSQL via Docker (skips if already reachable on :5432)
@if nc -z localhost 5432 2>/dev/null; then \
echo "✓ DB bereits erreichbar auf :5432 — kein Docker-Start nötig"; \
else \
docker compose -f docker-compose.dev.yml up -d; \
fi
dev: ## Start Django dev server on :9000
uv run manage.py runserver 0.0.0.0:9000
css: ## Start Tailwind CSS watcher (Vite, rebuild on change)
npm run dev
seed: ## Load dev seed data — users, one Ausschreibung, Lose, etc. (idempotent)
uv run manage.py seed_dev
superuser: ## Create a Django superuser for /admin/ access
uv run manage.py createsuperuser
migrate: ## Generate and apply all pending migrations
uv run manage.py makemigrations
uv run manage.py migrate
test: ## Run the full pytest test suite
uv run pytest
test-image: ## Verify locked Python dependencies, built CSS, application tests and migrations
docker build --target application-tests .
REUSE_SURFACE_BIN ?= reuse-surface
REUSE_SURFACE_URL ?= https://reuse.coulomb.social
plan-check: ## Check a proposed WORKPLAN against current hosted capabilities (no model call)
@test -n "$(WORKPLAN)" || { echo 'Set WORKPLAN=workplans/<file>.md'; exit 2; }
$(REUSE_SURFACE_BIN) plan-check "$(WORKPLAN)" --hub-url "$(REUSE_SURFACE_URL)" --no-llm --format json --consumer-repo vergabe-teilnahme
lint: ## Run ruff (style) and mypy (types)
uv run ruff check .
uv run mypy vergabe_teilnahme/
shell: ## Open a Django shell (shell_plus if available)
uv run manage.py shell_plus 2>/dev/null || uv run manage.py shell
collectstatic: ## Collect static files into staticfiles/ (production step)
uv run manage.py collectstatic --noinput
sync-whynot-design: ## Re-vendor whynot-design CSS+tokens from the pinned ref
./scripts/sync-whynot-design.sh