Release-Evidence-Speicher
Der Release-Workflow verwendet GitHub Actions nur für Ausführung und Status. Große Bundles, Testberichte und Playwright-Evidence werden zunächst in einem dedizierten, nicht öffentlichen Verzeichnis auf ops-stack abgelegt. Die VM ist zugleich der verwendete Self-hosted Runner. Ein NAS-/R2-Backup kann später zusätzlich aktiviert werden, ist aber nicht mehr Teil des kritischen Releasepfads.
Evidence-Pfad auf ops-stack
Der Staging-Workflow verwendet:
/home/dominic/qa-studio-release-evidence/<git-sha>/<run-id>-<attempt>/Der Pfad wird pro Run neu angelegt und nicht überschrieben. Er benötigt keine zusätzlichen Secrets, weil der Workflow bereits auf ops-stack läuft.
Ablage und Unveränderlichkeit
Evidence wird unter folgendem Pfad abgelegt:
<XYVA_EVIDENCE_SSH_PATH>/<git-sha>/<run-id>-<attempt>/Der Upload bricht ab, wenn Host-Key-Prüfung, Zielkonfiguration oder Read-back- Prüfsumme fehlschlagen. Ein bestehender Run-Pfad wird nicht wiederverwendet.
Package-Chain-Speicher
Die npm-Package-Chain kann mit dem manuellen Workflow-Eingang artifact_storage=external-ssh ohne GitHub-Actions-Artefakte laufen. Dabei werden Tarballs und Manifest per gepinntem SSH auf den dedizierten VPS-Pfad /var/lib/xyva/qa-studio-package-chain/<git-sha>/<run>-<attempt>/ geschrieben. Der Workflow liest das Manifest zurück, vergleicht SHA-256 und bindet denselben Digest im Publish-Schritt. Der Standardmodus bleibt explizit auswählbar; ein unbekannter oder unvollständig konfigurierter Speicherpfad stoppt den Workflow.
release-evidence-manifest.json enthält nur Dateipfade, Größen und SHA-256- Prüfsummen sowie Commit-/Run-Metadaten. Tokens, private Schlüssel und Runtime-Credentials dürfen niemals in Evidence oder Logs landen.
Einrichten und Prüfen
- Den dedizierten Pfad auf
ops-stackmit Besitzerdominicund Modus0750anlegen, falls er noch nicht existiert. - Den Candidate-Workflow für den geprüften Commit starten.
- Nach Abschluss Manifest und Read-back-SHA-256 vergleichen.
- Danach optional ein verschlüsseltes NAS-/R2-Backup dieses Pfads einrichten.
Fehlt die Konfiguration, muss der Release vor Deployment fail-closed stoppen.
