# BreakPilot PWA - Makefile fuer lokale CI-Simulation # # Verwendung: # make ci - Alle Tests lokal ausfuehren # make test-go - Nur Go-Tests # make test-python - Nur Python-Tests # make logs-agent - Woodpecker Agent Logs # make logs-backend - Backend Logs (ci-result) .PHONY: ci test-go test-python test-node logs-agent logs-backend clean help # Verzeichnis fuer Test-Ergebnisse CI_RESULTS_DIR := .ci-results help: @echo "BreakPilot CI - Verfuegbare Befehle:" @echo "" @echo " make ci - Alle Tests lokal ausfuehren" @echo " make test-go - Go Service Tests" @echo " make test-python - Python Service Tests" @echo " make test-node - Node.js Service Tests" @echo " make logs-agent - Woodpecker Agent Logs anzeigen" @echo " make logs-backend - Backend Logs (ci-result) anzeigen" @echo " make clean - Test-Ergebnisse loeschen" ci: test-go test-python test-node @echo "=========================================" @echo "Local CI complete. Results in $(CI_RESULTS_DIR)/" @echo "=========================================" @ls -la $(CI_RESULTS_DIR)/ test-go: $(CI_RESULTS_DIR) @echo "=== Go Tests ===" @if [ -d "consent-service" ]; then \ cd consent-service && go test -v -json ./... > ../$(CI_RESULTS_DIR)/test-consent.json 2>&1 || true; \ echo "consent-service: done"; \ fi @if [ -d "billing-service" ]; then \ cd billing-service && go test -v -json ./... > ../$(CI_RESULTS_DIR)/test-billing.json 2>&1 || true; \ echo "billing-service: done"; \ fi @if [ -d "school-service" ]; then \ cd school-service && go test -v -json ./... > ../$(CI_RESULTS_DIR)/test-school.json 2>&1 || true; \ echo "school-service: done"; \ fi test-python: $(CI_RESULTS_DIR) @echo "=== Python Tests ===" @if [ -d "backend" ]; then \ cd backend && python -m pytest tests/ -v --tb=short 2>&1 || true; \ echo "backend: done"; \ fi @if [ -d "voice-service" ]; then \ cd voice-service && python -m pytest tests/ -v --tb=short 2>&1 || true; \ echo "voice-service: done"; \ fi @if [ -d "klausur-service/backend" ]; then \ cd klausur-service/backend && python -m pytest tests/ -v --tb=short 2>&1 || true; \ echo "klausur-service: done"; \ fi test-node: $(CI_RESULTS_DIR) @echo "=== Node.js Tests ===" @if [ -d "h5p-service" ]; then \ cd h5p-service && npm test 2>&1 || true; \ echo "h5p-service: done"; \ fi $(CI_RESULTS_DIR): @mkdir -p $(CI_RESULTS_DIR) logs-agent: docker logs breakpilot-pwa-woodpecker-agent --tail=200 logs-backend: docker compose logs backend --tail=200 | grep -E "(ci-result|error|ERROR)" clean: rm -rf $(CI_RESULTS_DIR) @echo "Test-Ergebnisse geloescht"