feat: Add performance charts and CI auto-commit

- Add scripts/generate-perf-charts.py for matplotlib visualizations
- Update generate-perf-report.sh for versioned directories (reports/TAG/)
- Add make perf-charts and make perf-all targets
- Add GitLab CI perf-report job to auto-commit after tagged releases
- Generated 6 charts for 4.2.0: dashboard, duration, histogram, leaders, etc.

Each release now gets its own reports/TAG/ directory with:
  - perf.json (raw timing data)
  - perf.md (markdown report)
  - chart-*.png (6 visualizations)
This commit is contained in:
russell@unturf.com 2026-01-18 14:00:08 -05:00
parent a0ee191dd7
commit 88a3a6718c
13 changed files with 424 additions and 14 deletions

View file

@ -314,10 +314,24 @@ endif
# Performance Reporting
# ============================================================================
.PHONY: perf-report
.PHONY: perf-report perf-charts
perf-report:
ifdef TAG
@bash scripts/generate-perf-report.sh $(TAG)
else
@bash scripts/generate-perf-report.sh
endif
perf-charts:
ifdef TAG
@echo "Generating performance charts for $(TAG)..."
@build/un -a -f reports/$(TAG)/perf.json scripts/generate-perf-charts.py
@mv -f *.png reports/$(TAG)/ 2>/dev/null || true
@echo "✓ Charts saved to reports/$(TAG)/"
else
@echo "Usage: make perf-charts TAG=4.2.0"
endif
perf-all: perf-report perf-charts
@echo "✓ Performance report and charts complete for $(TAG)"
@ls -la reports/$(TAG)/