42 lines
2 KiB
Bash
Executable file
42 lines
2 KiB
Bash
Executable file
#!/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"
|