mini_ci_probe/README.md
2025-12-09 14:56:51 +00:00

97 lines
No EOL
3.5 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.

# mini_ci_probe Mini Continuous Integration Probe
## Überblick
Das Experiment **mini_ci_probe** untersucht einen Probelauf einer Mini-CI-Umgebung mit Schwerpunkt auf stratifiziertem Sampling, Split von Runnern und Bootstrap-Validierung. Ziel ist die Analyse und Optimierung verteilter CI-Prozesse unter kontrollierten Stichprobenbedingungen.
[Artikel zum Experiment](https://donau2space.de/tag-82-mini-ci-probe-sampling-runner-split-und-ein-klarer-fortschritt/)
### 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
Das Repository enthält folgende Artefakte:
### 1. CI-Pipeline-Dokumentation (`ci_pipeline`)
- **Art**: Dokumentation (doc_only)
- **Ziel**: gemischt (mixed)
- **Beschreibung**: Enthält die Dokumentation der CI-Pipeline einschließlich Konfiguration, Testdefinitionen und Prozessbeschreibung.
- **Datenstruktur**:
- `CI_Pipeline_Config` (JSON):
- `stratified_sample_size`
- `capture_parallel`
- `aggregator_mode`
- `bootstrap_runs`
- `job_timeouts`
### 2. Python-Sampling-Tool (`python_sampling_tool`)
- **Art**: Python-Skript (python_script)
- **Ziel**: Linux-Userspace
- **Sprache**: Python
- **Beschreibung**: Implementiert ein stratifiziertes Sampling-Verfahren zur Verteilung von Test-Jobs in einer CI-Umgebung.
- **API-Funktionen**:
- `perform_stratified_sampling(sample_size, num_jobs)`: Führt ein stratifiziertes Sampling durch und gibt eine Liste von Stichproben zurück.
- **Datenstruktur**:
- `Sample` (JSON):
- `job_id`
- `data_points`
### 3. Performance-Metriken (`performance_metrics`)
- **Art**: JSON-Datensatz (json_dataset)
- **Ziel**: gemischt (mixed)
- **Sprache**: JSON
- **Beschreibung**: Enthält gemessene Leistungskennzahlen von CI-Jobs zur Auswertung der Sampling- und Bootstrap-Verfahren.
- **Datenstruktur**:
- `PerformanceMetrics` (JSON):
- `job_id`
- `duration`
- `ci_width`
- `ci_variance`
## Installation & Nutzung
### Voraussetzungen
- Linux-Umgebung mit Python 3.8 oder höher.
### Installation
```bash
# Repository klonen
git clone <repository-url>
cd mini_ci_probe
# Optionale Python-Umgebung erstellen
python -m venv venv
source venv/bin/activate
# Abhängigkeiten installieren (falls vorhanden)
pip install -r requirements.txt
```
### Nutzung des Sampling-Tools
```bash
python python_sampling_tool.py --sample-size 100 --num-jobs 1200
```
Dies führt ein stratifiziertes Sampling durch und erstellt eine Ausgabedatei mit Job-Stichproben.
## Typische Use-Cases
- Simulation und Validierung von CI-Prozessen in kleinem Maßstab
- Testen von Bootstrap-Methoden für Laufzeit- und Varianzanalysen
- Analyse von Sampling-Effekten auf Job-Dauer und Konfidenzintervalle
- Grundlage für Pipeline-Skalierungsstrategien
## Struktur & Erweiterbarkeit
Die Repository-Struktur ist modular aufgebaut:
- **/docs/** Dokumentation der CI-Pipeline.
- **/tools/** Python-Skripte für Sampling-Prozesse.
- **/data/** JSON-Dateien mit Messwerten.
Mögliche Erweiterungen:
- Integration zusätzlicher Sampling-Strategien.
- Automatisierte Visualisierung der Leistungskennzahlen.
- Erweiterung der JSON-Schemata um Konvergenzmetriken und CI-Retraining-Daten.
## Lizenz
Dieses Projekt steht unter der **MIT-Lizenz**.
---
*Erstellt und dokumentiert durch ein KI-basiertes System. Nutzung auf eigene Verantwortung.*