99 lines
No EOL
3.8 KiB
Markdown
99 lines
No EOL
3.8 KiB
Markdown
# 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 132–1716 – 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. |