ci_policy_evaluation/README.md
2026-01-28 16:22:46 +00:00

99 lines
No EOL
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CI Policy Evaluation
## Überblick
Das Experiment **ci_policy_evaluation** befasst sich mit der Entwicklung und Evaluierung einer CI-Policy zur Verarbeitung von Warnungen und Entscheidungen innerhalb eines Continuous-Integration-Workflows. Es beinhaltet ein Python-Analysetool, das Entscheidungslogiken auf Backtest-CSV-Daten anwendet, sowie Mechanismen zur Berichterstattung der Ergebnisse.
**Link zum Artikel:** [CI Policy Tag 1321716 Festgenagelt: WARN ist jetzt eine Regel, kein Bauchgefühl](https://donau2space.de/tag-132-1716-ci-policy-v0-1-festgenagelt-warn-ist-jetzt-eine-regel-kein-bauchgefuehl/)
**Git Repository:** [https://git.donau2space.de/Mika/ci_policy_evaluation](https://git.donau2space.de/Mika/ci_policy_evaluation)
### Hinweis
Alle Inhalte wurden per KI generiert.
Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich auf eigenes Risiko. Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert.
---
## Inhalt des Repositories
### 1. policy_definition
- **Art:** doc_only
- **Ziel:** mixed
- **Sprache:** YAML
- **Beschreibung:** Definition der CI-Policy als maschinenlesbare YAML-Datei. Sie legt die Entscheidungskriterien für die Status PASS, WARN und FAIL fest.
- **Datenstruktur:** `CIPolicy` (JSON)
- Felder: `status`, `rules`
### 2. python_analysis_script
- **Art:** python_script
- **Ziel:** Linux-Userspace
- **Sprache:** Python
- **Beschreibung:** Python-Skript zur Analyse von Backtest-CSV-Daten. Es wendet die CI-Policy an und bestimmt Entscheidungsergebnisse.
- **API-Funktion:**
- `analyze_backtest(csv_file)` → Gibt die Analyse- und Entscheidungsergebnisse (`decision_results`) zurück.
- **Datenstruktur:** `DecisionResult`
- Felder: `timestamp`, `decision`, `margin`, `flaky_flag`, `subset_flip_count`, `mischfenster_p95`
### 3. ci_report_hook
- **Art:** python_script
- **Ziel:** Linux-Userspace
- **Sprache:** Python
- **Beschreibung:** Minimaler CI-Report-Hook. Zeichnet Daten zu Entscheidungen und Metriken pro CI-Lauf auf.
- **API-Funktion:**
- `record_ci_run(run_id, decision, margin, flaky_flag, subset_flip_count, mischfenster_p95)` → Speichert die CI-Run-Daten.
- **Datenstruktur:** `CIReport`
- Felder: `timestamp`, `run_id`, `decision`, `margin`, `flaky_flag`, `subset_flip_count`, `mischfenster_p95`
---
## Installation & Nutzung
### Voraussetzungen
- Python ≥ 3.9
- Linux-System mit Zugriff auf Shell und Python-Umgebung
### Installation
1. Repository klonen:
```bash
git clone https://git.donau2space.de/Mika/ci_policy_evaluation
cd ci_policy_evaluation
```
2. Virtuelle Umgebung anlegen und Abhängigkeiten installieren:
```bash
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### Nutzung
- **Analyse starten:**
```bash
python python_analysis_script.py --input backtest_data.csv
```
- **CI-Report-Hook ausführen:**
```bash
python ci_report_hook.py --run-id RUN1234 --decision WARN --margin 0.12
```
---
## Typische Use-Cases
- Evaluation von CI-Entscheidungsrichtlinien in Entwicklungsumgebungen
- Statistische Analyse von Warnungen und Fehlermustern
- Automatisierte Dokumentation von CI-Laufdaten
- Berichterstellung auf Basis von Backtest-Auswertungen
---
## Struktur & mögliche Erweiterungen
- Erweiterung der Policy-Definition zur Einbindung weiterer Metriken
- Integration eines Web-basierten Dashboards zur Visualisierung der CI-Entscheidungen
- Ergänzung einer CLI-Schnittstelle zur automatisierten Batchanalyse
- Aufnahme von historischen Vergleichsdaten zur Policy-Optimierung
---
## Lizenz
Projektlizenz: **MIT License**
Alle Inhalte wurden maschinell mit KI-Unterstützung erstellt. Nutzung, Veränderung und Weiterentwicklung erfolgen auf eigene Verantwortung und Gefahr. Der Autor übernimmt keine Haftung für Korrektheit oder Eignung zu einem bestimmten Zweck.