#!/usr/bin/env bash # ══════════════════════════════════════════════════════════════════════════ # publish_dashboard.sh — снапшот стора харнеса → публичный дашборд. # # t-261018220236-7d5851 (деплой) + day-тик 2026-10-19 (автообновление): # 1) scripts/export_dashboard_snapshot.py → /root/agent-dashboard/site/data.json # 2) git commit+push (репо symbiot/agent-dashboard) # 3) порталный deploy_app (docker compose + Caddy) → https://agent-dashboard.cil.by # # Идемпотентен: пустой дифф — коммита/деплоя нет, exit 0. # Токен деплоя — агентский (SIMBIOT_AGENT_TOKEN из .env харнеса). # ══════════════════════════════════════════════════════════════════════════ set -euo pipefail HARNESS=/root/simbiot-harness REPO=/root/agent-dashboard LOG=/var/log/agent-dashboard-publish.log log() { echo "[$(date -u +%FT%TZ)] $*" >>"$LOG"; } # 1) снапшот "$HARNESS/venv/bin/python" "$HARNESS/scripts/export_dashboard_snapshot.py" "$REPO/site/" # 2) push, если есть дифф cd "$REPO" if git diff --quiet -- site/data.json; then log "no changes — skip" exit 0 fi git add site/data.json git -c user.name="simbiot" -c user.email="simbiot@cil.by" \ commit -q -m "snapshot: $(date -u +%F\ %H:%M) UTC" git push -q origin main log "pushed" # 3) деплой через портал TOKEN="$(sed -n 's/^SIMBIOT_AGENT_TOKEN=//p' "$HARNESS/.env")" SIMBIOT_PORTAL_MCP_TOKEN="$TOKEN" "$HARNESS/venv/bin/python" "$HARNESS/cli.py" \ mcp-call deploy_app '{"app":"agent-dashboard","repo":"symbiot/agent-dashboard"}' \ >/dev/null 2>&1 || { log "deploy_app FAILED"; exit 3; } log "deployed" echo "dashboard published"