97 lines
No EOL
3.5 KiB
Markdown
97 lines
No EOL
3.5 KiB
Markdown
# 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.* |