diff --git a/scripts/e2e/cron-mcp-cleanup-docker-client.ts b/scripts/e2e/cron-mcp-cleanup-docker-client.ts index 8f8de202bf9..099e147be50 100644 --- a/scripts/e2e/cron-mcp-cleanup-docker-client.ts +++ b/scripts/e2e/cron-mcp-cleanup-docker-client.ts @@ -133,7 +133,7 @@ async function runCronCleanupScenario(params: { message: "Use available context and then stop.", timeoutSeconds: 90, lightContext: true, - toolsAllow: ["bundle-mcp"], + toolsAllow: ["cronCleanupProbe__cleanup_probe"], }, delivery: { mode: "none" }, }); diff --git a/scripts/e2e/lib/bundled-channel/update.sh b/scripts/e2e/lib/bundled-channel/update.sh index 434684c42e0..6e2276f8adb 100644 --- a/scripts/e2e/lib/bundled-channel/update.sh +++ b/scripts/e2e/lib/bundled-channel/update.sh @@ -8,7 +8,7 @@ run_update_scenario() { state_script_b64="$(docker_e2e_test_state_shell_b64 bundled-channel-update empty)" echo "Running bundled channel runtime deps Docker update E2E..." - run_logged_print bundled-channel-update timeout "$DOCKER_UPDATE_RUN_TIMEOUT" docker run --rm \ + run_logged_print_heartbeat bundled-channel-update 30 timeout "$DOCKER_UPDATE_RUN_TIMEOUT" docker run --rm \ -e COREPACK_ENABLE_DOWNLOAD_PROMPT=0 \ -e OPENCLAW_BUNDLED_CHANNEL_UPDATE_BASELINE_VERSION="$UPDATE_BASELINE_VERSION" \ -e "OPENCLAW_BUNDLED_CHANNEL_UPDATE_TARGETS=${OPENCLAW_BUNDLED_CHANNEL_UPDATE_TARGETS:-telegram,discord,slack,feishu,memory-lancedb,acpx}" \ diff --git a/scripts/lib/docker-e2e-logs.sh b/scripts/lib/docker-e2e-logs.sh index 24d9cbe008e..bf5d67cb1d9 100644 --- a/scripts/lib/docker-e2e-logs.sh +++ b/scripts/lib/docker-e2e-logs.sh @@ -31,6 +31,34 @@ run_logged_print() { rm -f "$log_file" } +run_logged_print_heartbeat() { + local label="$1" + local interval_seconds="$2" + shift 2 + local log_file + log_file="$(docker_e2e_run_log "$label")" + "$@" >"$log_file" 2>&1 & + local command_pid=$! + local started_at + started_at="$(date +%s)" + local status=0 + while kill -0 "$command_pid" 2>/dev/null; do + sleep "$interval_seconds" + if kill -0 "$command_pid" 2>/dev/null; then + local now + now="$(date +%s)" + echo "still running $label ($((now - started_at))s elapsed)" + fi + done + set +e + wait "$command_pid" + status=$? + set -e + docker_e2e_print_log "$log_file" + rm -f "$log_file" + return "$status" +} + docker_e2e_run_log() { local label="$1" local tmp_dir="${TMPDIR:-/tmp}"