Makefile#

# Lint and autoformat all files using pre-commit hooks.
# This will first autoformat with Black, then run all other checks.
lint:
	black src tests scripts
	pre-commit run --all-files

# Run security checks
security:
	./security_check.sh

# Run security checks with detailed reports
security-reports:
	./security_check.sh --reports

# Run all checks including security
check-all: lint security

# Build and apply Kubernetes manifests with Kustomize, using .env as source of Secrets.
k8s-apply:
	@which kustomize >/dev/null 2>&1 || { echo "kustomize not found. Install it: https://kubectl.docs.kubernetes.io/installation/kustomize/"; exit 1; }
	kustomize build k8s | kubectl apply -f -

k8s-dry-run:
	@which kustomize >/dev/null 2>&1 || { echo "kustomize not found. Install it: https://kubectl.docs.kubernetes.io/installation/kustomize/"; exit 1; }
	kustomize build k8s | head -n 120

# Primary build step. Ensures Kubernetes Secrets are updated from .env automatically.
build: k8s-apply
	@echo "Build step completed. Kubernetes manifests applied via Kustomize using .env."