From 5a3b75de33dda11de7931686264ecf86df93de2d Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 1 May 2026 00:17:22 +0100 Subject: [PATCH] test(parallels): retry post-update cli readiness --- scripts/e2e/parallels/npm-update-scripts.ts | 39 +++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/scripts/e2e/parallels/npm-update-scripts.ts b/scripts/e2e/parallels/npm-update-scripts.ts index 751f194be2d..d2571c7dcc3 100644 --- a/scripts/e2e/parallels/npm-update-scripts.ts +++ b/scripts/e2e/parallels/npm-update-scripts.ts @@ -184,10 +184,45 @@ ${input.auth.apiKeyEnv}=${shellQuote(input.auth.apiKeyValue)} openclaw agent --l } function posixVersionCheck(command: string, expectedNeedle: string): string { + const quotedNeedle = shellQuote(expectedNeedle); if (!expectedNeedle) { - return `${command} --version`; + return `hash -r || true +version_deadline=$((SECONDS + 60)) +while true; do + set +e + version="$(${command} --version 2>&1)" + version_status=$? + set -e + printf '%s\\n' "$version" + if [ "$version_status" -eq 0 ]; then + break + fi + if [ "$SECONDS" -ge "$version_deadline" ]; then + exit "$version_status" + fi + sleep 2 +done`; } - return `version="$(${command} --version)"; printf '%s\\n' "$version"; case "$version" in *${shellQuote(expectedNeedle)}*) ;; *) echo "version mismatch: expected ${expectedNeedle}" >&2; exit 1 ;; esac`; + return `hash -r || true +version_deadline=$((SECONDS + 60)) +while true; do + set +e + version="$(${command} --version 2>&1)" + version_status=$? + set -e + printf '%s\\n' "$version" + if [ "$version_status" -eq 0 ]; then + case "$version" in *${quotedNeedle}*) break ;; esac + fi + if [ "$SECONDS" -ge "$version_deadline" ]; then + if [ "$version_status" -ne 0 ]; then + exit "$version_status" + fi + echo "version mismatch: expected ${expectedNeedle}" >&2 + exit 1 + fi + sleep 2 +done`; } function windowsVersionCheck(expectedNeedle: string): string {