From f6210c1c6ce463b639435d275c859b28291cf2a8 Mon Sep 17 00:00:00 2001 From: Pigbibi <20649888+Pigbibi@users.noreply.github.com> Date: Wed, 29 Apr 2026 05:18:59 +0800 Subject: [PATCH] Install Gateway healthcheck after recovery --- .github/workflows/main.yml | 4 ++-- tests/test_workflow_shared_config.sh | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 37296c7..ec078b5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -351,8 +351,8 @@ jobs: sudo systemctl stop ibkr-gateway-healthcheck.timer ibkr-gateway-healthcheck.service 2>/dev/null || true sudo bash ./scripts/ensure_host_swap.sh sudo bash ./scripts/install_2fa_bot_watcher.sh - sudo bash ./scripts/install_gateway_health_watcher.sh sudo bash ./scripts/recover_ib_gateway_ready.sh '${IB_GATEWAY_MODE}' + sudo bash ./scripts/install_gateway_health_watcher.sh sudo docker compose ps sudo systemctl status ibkr-2fa-bot.timer --no-pager sudo systemctl status ibkr-gateway-healthcheck.timer --no-pager @@ -372,8 +372,8 @@ jobs: sudo docker compose up -d sudo bash ./scripts/install_2fa_bot_watcher.sh - sudo bash ./scripts/install_gateway_health_watcher.sh sudo bash ./scripts/recover_ib_gateway_ready.sh '${IB_GATEWAY_MODE}' + sudo bash ./scripts/install_gateway_health_watcher.sh sudo docker compose ps sudo systemctl status ibkr-2fa-bot.timer --no-pager sudo systemctl status ibkr-gateway-healthcheck.timer --no-pager diff --git a/tests/test_workflow_shared_config.sh b/tests/test_workflow_shared_config.sh index 401a422..ed3ed9d 100644 --- a/tests/test_workflow_shared_config.sh +++ b/tests/test_workflow_shared_config.sh @@ -55,6 +55,18 @@ grep -Fq "sudo bash ./scripts/recover_ib_gateway_ready.sh '\${IB_GATEWAY_MODE}'" grep -Fq 'sudo systemctl status ibkr-gateway-healthcheck.timer --no-pager' "$workflow_file" grep -Fq 'sudo systemctl status ibkr-gateway-daily-restart.timer --no-pager' "$workflow_file" grep -Fq 'Full deploy mode: rebuilding container' "$workflow_file" + +mapfile -t recover_lines < <(grep -nF "sudo bash ./scripts/recover_ib_gateway_ready.sh '\${IB_GATEWAY_MODE}'" "$workflow_file" | cut -d: -f1) +mapfile -t health_watcher_lines < <(grep -nF 'sudo bash ./scripts/install_gateway_health_watcher.sh' "$workflow_file" | cut -d: -f1) +test "${#recover_lines[@]}" -eq 2 +test "${#health_watcher_lines[@]}" -eq 2 +for i in 0 1; do + if [ "${recover_lines[$i]}" -ge "${health_watcher_lines[$i]}" ]; then + echo "Gateway health watcher must be installed after explicit recovery in deploy block $i" >&2 + exit 1 + fi +done + grep -Fq '"TRADING_MODE": os.environ["IB_GATEWAY_MODE"]' "$workflow_file" grep -Fq '"ACCEPT_API_FROM_IP": os.environ["CLOUD_RUN_EGRESS_CIDR"]' "$workflow_file" grep -Fq 'REMOTE_DEPLOY_COMMAND=$(cat <