From a55f0a450024f5a607b4266ed8d8e454266eb758 Mon Sep 17 00:00:00 2001 From: twentyOne2x Date: Fri, 26 Jun 2026 13:40:50 +0200 Subject: [PATCH] Avoid starting inactive legacy Leo bot on deploy --- deploy/auto-deploy.sh | 10 ++++++++-- deploy/deploy.sh | 2 +- tests/test_teleo_agent_systemd.py | 10 ++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/deploy/auto-deploy.sh b/deploy/auto-deploy.sh index 3f25fad..86faf9b 100755 --- a/deploy/auto-deploy.sh +++ b/deploy/auto-deploy.sh @@ -112,19 +112,25 @@ add_restart_if_unit_exists() { add_restart "$1" fi } +add_restart_if_unit_active() { + if systemctl is-active --quiet "$1.service"; then + add_restart "$1" + fi +} if [ "$OLD_SHA" != "none" ]; then if git diff --name-only "$OLD_SHA" "$NEW_SHA" -- lib/ teleo-pipeline.py reweave.py telegram/ 2>/dev/null | grep -q '\.py$'; then add_restart teleo-pipeline fi if git diff --name-only "$OLD_SHA" "$NEW_SHA" -- telegram/ 2>/dev/null | grep -q '\.py$'; then - add_restart teleo-agent@leo + add_restart_if_unit_active teleo-agent@leo add_restart_if_unit_exists teleo-agent@leo-wallet-test fi if git diff --name-only "$OLD_SHA" "$NEW_SHA" -- diagnostics/ 2>/dev/null | grep -q '\.py$'; then add_restart teleo-diagnostics fi else - RESTART="teleo-pipeline teleo-diagnostics teleo-agent@leo" + RESTART="teleo-pipeline teleo-diagnostics" + add_restart_if_unit_active teleo-agent@leo add_restart_if_unit_exists teleo-agent@leo-wallet-test fi diff --git a/deploy/deploy.sh b/deploy/deploy.sh index 216ace5..0607ecd 100755 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -104,6 +104,6 @@ echo "Deploy complete." if $RESTART; then echo "" echo "=== Restarting services ===" - ssh "$VPS_HOST" "sudo systemctl restart teleo-pipeline teleo-diagnostics teleo-agent@leo; if systemctl list-units --all --full teleo-agent@leo-wallet-test.service --no-legend | grep -q .; then sudo systemctl restart teleo-agent@leo-wallet-test; fi" + ssh "$VPS_HOST" "sudo systemctl restart teleo-pipeline teleo-diagnostics; if systemctl is-active --quiet teleo-agent@leo.service; then sudo systemctl restart teleo-agent@leo; fi; if systemctl list-units --all --full teleo-agent@leo-wallet-test.service --no-legend | grep -q .; then sudo systemctl restart teleo-agent@leo-wallet-test; fi" echo "Services restarted." fi diff --git a/tests/test_teleo_agent_systemd.py b/tests/test_teleo_agent_systemd.py index 588c954..fd20590 100644 --- a/tests/test_teleo_agent_systemd.py +++ b/tests/test_teleo_agent_systemd.py @@ -20,6 +20,16 @@ def test_deploy_scripts_restart_wallet_test_agent_when_present(): assert "teleo-agent@leo-wallet-test" in manual_deploy +def test_deploy_scripts_do_not_start_inactive_legacy_leo_agent(): + auto_deploy = (REPO_ROOT / "deploy" / "auto-deploy.sh").read_text() + manual_deploy = (REPO_ROOT / "deploy" / "deploy.sh").read_text() + + assert "add_restart_if_unit_active teleo-agent@leo" in auto_deploy + assert "add_restart teleo-agent@leo" not in auto_deploy + assert "systemctl is-active --quiet teleo-agent@leo.service" in manual_deploy + assert "teleo-pipeline teleo-diagnostics teleo-agent@leo" not in manual_deploy + + def test_auto_deploy_prefers_github_remote_when_present(): auto_deploy = (REPO_ROOT / "deploy" / "auto-deploy.sh").read_text()