phase1c: Deploy mit Rueckweg und Prueftor, tote Deploy-Dateien raus
- deploy.sh zweistufig: Sperre, laufende Update-Jobs verschieben den Deploy, fast-forward, dann laeuft die NEUE Fassung als Stufe 2 (Aenderungen am Skript wirken sofort). Stufe 2: Prueftor, Abhaengigkeiten, llama-swap-Config nur bei Aenderung des Abzugs in diesem Deploy (ohne Motor-Neustart, -watch-config reicht; 5 Sicherungen), alle Repo-Units und Drop-ins, Cron-Skripte nach ~/.hermes/scripts, Skills/Plugins, Neustart, Nachpruefung. Scheitert etwas: zurueck auf den alten Stand (inkl. llama-swap-Config), Dienste neu, dringende Meldung, Eintrag in /srv/models/mc2-deploy.log. - deploy/pruefen.sh ersetzt die tote CI-Ampel: Shell-/Python-Syntax, ruff, Importe, pytest. Laeuft am PC vor dem Push und auf der Box vor dem Umschalten (pytest via requirements-dev.txt). - Units, die nur auf der Box lagen, jetzt im Repo: projekte-sync.*, lucy-stimme.service, mission-control-2-Override. - Tot und entfernt: Werkstatt-/Projektstart-/Betrieb-SOULs, worker.sh, Agent-Hooks, Ampel-CI (samt .gitea-Workflow und Saat in gitea-repo-create.sh), gitea-pr, Governor-Plugin, Specs, Selbst-Inventur, Self-Smoke, venv-Audit, setup_autonomous_crons.sh (haette alte Jobs neu angelegt), Einmal-Skripte, alte Bench-Skripte, .agents/mcp_config.json, client/ide-skills, mcp/requirements.txt. Gitea-Host-Notizen nach docs/archiv/gitea-host. - morgenmeldung.sh begrenzt das Melde-Log (ueber 3 MB bleiben die letzten 2 MB). - AGENTS.md: Prueftor und neuer Deploy beschrieben. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
e9f488b56c
commit
4cd856bd34
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
# pruefen.sh — das Prüftor (seit 24.09.2026, ersetzt die tote CI-Ampel).
|
||||
#
|
||||
# Läuft am PC vor dem Push und auf der Box in deploy.sh vor dem Umschalten. Rot = kein Deploy.
|
||||
# Prüft: Shell-Syntax, Python-Syntax, Lint (wo ruff installiert ist), dass alle Dienste sich
|
||||
# importieren lassen, und die Tests.
|
||||
set -uo pipefail
|
||||
cd "$(dirname "$0")/.."
|
||||
WURZEL="$(pwd)"
|
||||
|
||||
PY="${MC_PRUEF_PYTHON:-}"
|
||||
if [ -z "$PY" ]; then
|
||||
for k in backend/.venv/bin/python backend/.venv/Scripts/python.exe; do
|
||||
[ -x "$k" ] && PY="$WURZEL/$k" && break
|
||||
done
|
||||
fi
|
||||
[ -n "$PY" ] || { echo "✗ Kein Python im backend/.venv gefunden."; exit 1; }
|
||||
|
||||
fehler=0
|
||||
schritt() { echo "── $1"; }
|
||||
|
||||
schritt "Syntax der Shell-Skripte"
|
||||
for f in deploy/*.sh deploy/jobs/*.sh; do
|
||||
bash -n "$f" || { echo " ✗ $f"; fehler=1; }
|
||||
done
|
||||
|
||||
schritt "Python-Syntax"
|
||||
git ls-files '*.py' | grep -v '^frontend/' | xargs "$PY" -m py_compile || fehler=1
|
||||
|
||||
schritt "Lint (ruff)"
|
||||
if command -v ruff >/dev/null 2>&1; then
|
||||
ruff check . || fehler=1
|
||||
else
|
||||
echo " ruff ist hier nicht installiert — übersprungen (am PC läuft er)."
|
||||
fi
|
||||
|
||||
schritt "Dienste lassen sich laden"
|
||||
MODELS_PROBE="${MC_PRUEF_MODELS_DIR:-${TMPDIR:-/tmp}/mc2-pruefen}"
|
||||
mkdir -p "$MODELS_PROBE"
|
||||
( cd backend && MC_MODELS_DIR="$MODELS_PROBE" "$PY" -c "import app, gateway_app, steward, radar_lauf" ) || fehler=1
|
||||
|
||||
schritt "Tests"
|
||||
"$PY" -m pytest backend/tests -q -p no:cacheprovider || fehler=1
|
||||
|
||||
if [ "$fehler" = 0 ]; then
|
||||
echo "✅ Prüftor grün"
|
||||
else
|
||||
echo "✗ Prüftor rot"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user