Gruen-Gate: Ampel gruen auf main -> automatische Befoerderung auf stable
Ampel / ampel (push) Successful in 31s

Arcane-GitSync deployt kuenftig von stable (rot deployt NIE).
deploy.sh wird zum Notfall-Hebel. MakeMKV-Entscheid: Konzept gilt,
lossless als Etappe 10 in der ROADMAP verankert.
This commit is contained in:
Hitonabi
2026-07-22 22:45:46 +02:00
parent 419ba42c38
commit 0b93276302
5 changed files with 41 additions and 14 deletions
+11
View File
@@ -71,3 +71,14 @@ jobs:
echo "❌ AMPEL ROT — nichts heißt fertig', solange das rot ist." echo "❌ AMPEL ROT — nichts heißt fertig', solange das rot ist."
fi fi
exit $rot exit $rot
- name: Grün-Gate — grünen Stand auf 'stable' befördern (Arcane deployt von dort)
if: success()
shell: bash
run: |
if [ "${GITHUB_REF_NAME:-}" = "main" ]; then
git push origin +HEAD:refs/heads/stable
echo "✅ main → stable befördert. Arcane-GitSync zieht 'stable' und deployt."
else
echo "Kein main-Push — keine Beförderung."
fi
+5 -3
View File
@@ -17,9 +17,11 @@ abschwächen). Keine Tests = rot = nicht fertig. Der Commander liest die Ampel,
gestrichenes Muss-Feature → erst den Commander fragen, NIE still ersetzen. gestrichenes Muss-Feature → erst den Commander fragen, NIE still ersetzen.
(Vorgefallen: Muss-Feature „MakeMKV lossless" wurde still durch lossy HandBrake ersetzt.) (Vorgefallen: Muss-Feature „MakeMKV lossless" wurde still durch lossy HandBrake ersetzt.)
**C. Deployment NUR über `./deploy.sh`.** Idempotent, EIN fester Compose-Projektname **C. Deployment läuft AUTOMATISCH über das Grün-Gate.** Ampel grün auf `main`
(`rippy`), EIN Pfad (`~/projects/rippy`). Nie freihändig per SSH auf der VM bauen. CI befördert den Stand auf Branch `stable` → Arcane-GitSync zieht `stable` und
(Vorgefallen: Doppel-Anlage `Rippy` + `rippy` auf der arcane-VM.) deployt. Du deployst also durch PUSHEN, nicht durch Kommandos. `./deploy.sh` ist
NUR der Notfall-Hebel (Arcane down o. ä.); nie freihändig per SSH auf der VM bauen.
(Vorgefallen: Doppel-Anlage `Rippy` + `rippy` auf der VM durch Freihand-Deploys.)
**D. Externe Schnittstellen NIE aus dem Kopf.** Vor Nutzung fremder CLI-Flags oder **D. Externe Schnittstellen NIE aus dem Kopf.** Vor Nutzung fremder CLI-Flags oder
Bibliotheks-APIs: `--help`/Doku prüfen und die Fundstelle im Commit nennen. Bibliotheks-APIs: `--help`/Doku prüfen und die Fundstelle im Commit nennen.
+12
View File
@@ -217,3 +217,15 @@
| TMDB-Bildrechte | Etappe 4 | Gelöst: TMDB API-ToS erlaubt private Nutzung | | TMDB-Bildrechte | Etappe 4 | Gelöst: TMDB API-ToS erlaubt private Nutzung |
| Hybrid-Discs | Etappe 1 | MVP erkennt nur Standard; als "Kann" notiert | | Hybrid-Discs | Etappe 1 | MVP erkennt nur Standard; als "Kann" notiert |
| Redis Single-Instance | Etappe 1 | MVP reicht; Cluster als "Später" | | Redis Single-Instance | Etappe 1 | MVP reicht; Cluster als "Später" |
## Etappe 10: MakeMKV-Umstellung — das Muss-Feature „lossless" einlösen
**Ziel:** DVD/Blu-ray-Ripping auf `makemkvcon` umstellen (verlustfrei), wie im
KONZEPT als Muss definiert. HandBrake fliegt aus dem Ripp-Pfad (bleibt ggf. als
optionaler Transcode-Schritt NACH dem verlustfreien Rip).
- [ ] Worker-Dockerfile: makemkv-oss/makemkv-bin bauen + Beta-Key-Handling (Env/Cron)
- [ ] ripping.py: rip_dvd/rip_bluray auf `makemkvcon --all --progress mkv` umstellen
(Fortschritts-Parsing anpassen, Tests zuerst!)
- [ ] E2E mit echter Disc verifizieren (Commander, Laufwerk nötig)
**Fertig wenn:** eine echte DVD landet verlustfrei als MKV im Output, Ampel grün.
**Entstanden aus:** Review 22.07. — HandBrake-lossy war eine stille Abweichung vom
Konzept; Entscheid 22.07. abends: Konzept gilt, Umbau als eigene Etappe.
+10 -8
View File
@@ -93,12 +93,14 @@ Gefixt:
- Tests: test_auth, test_cache_keys, test_ripping_helpers (der giftige - Tests: test_auth, test_cache_keys, test_ripping_helpers (der giftige
test_health-Placebo ist raus). test_health-Placebo ist raus).
## ⚠️ OFFENE ENTSCHEIDUNG FÜR DEN COMMANDER (Regel B — keine stille Abweichung) ## ✅ ENTSCHIEDEN (22.07. abends): Das KONZEPT gilt — MakeMKV kommt
**KONZEPT sagt: MakeMKV, verlustfrei (Muss-Feature). Gebaut wurde: HandBrake mit **MakeMKV lossless (Muss-Feature) wird umgesetzt — als eigene Etappe 10 in der
Lossy-Preset „Fast 1080p30".** Deine DVDs/Blu-rays werden aktuell TRANSKODIERT, ROADMAP** (Worker-Container + makemkvcon + Beta-Key, in Zed zu bauen, E2E mit
nicht verlustfrei gesichert. Optionen: echter Disc). Bis dahin bleibt HandBrake als SICHTBARER Übergang aktiv — jede*r
1. Auf MakeMKV umbauen (wie geplant — makemkvcon ist im Prescan schon im Einsatz, weiß: aktuell wird transkodiert, nicht verlustfrei gesichert.
braucht Beta-Key-Handling im Worker-Container), ODER
2. Konzept bewusst ändern („lossy reicht mir") und KONZEPT.md anpassen. ## Deploy-Weg seit 22.07. abends: GRÜN-GATE (vollautomatisch)
Bis zur Entscheidung bleibt HandBrake aktiv — aber jetzt SICHTBAR statt still. Push auf `main` → Ampel prüft → grün → CI befördert auf Branch `stable`
**Arcane-GitSync zieht `stable` und deployt**. Rot deployt NIE. `./deploy.sh`
ist nur noch der Notfall-Hebel; SSH zur VM bleibt als Fallback erlaubt.
+3 -3
View File
@@ -1,8 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# EINZIGER Deploy-Weg für Rippy (Regel C in AGENTS.md, seit 22.07.2026). # NOTFALL-Deploy für Rippy (seit Grün-Gate 22.07.2026 NICHT mehr der Normalweg!).
# Normalweg: push → Ampel grün → CI befördert auf 'stable' → Arcane-GitSync deployt.
# Dieses Skript nur nutzen, wenn der Automat klemmt (Arcane down o. ä.).
# Idempotent: EIN Compose-Projektname (rippy), EIN Pfad auf der VM. # Idempotent: EIN Compose-Projektname (rippy), EIN Pfad auf der VM.
# Nie freihändig per SSH bauen — genau daraus entstand die Doppel-Anlage
# Rippy/rippy am 21.07.
set -euo pipefail set -euo pipefail
VM="arcane@192.168.178.162" VM="arcane@192.168.178.162"