From cd45f53b4e4b2bed66455d74ab835b6047a9d3b5 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 16 Apr 2026 21:50:33 +0100 Subject: [PATCH] test: stabilize parallels npm update smoke --- scripts/e2e/lib/parallels-macos-common.sh | 26 ++++++++++++++++++----- scripts/e2e/parallels-npm-update-smoke.sh | 2 +- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/scripts/e2e/lib/parallels-macos-common.sh b/scripts/e2e/lib/parallels-macos-common.sh index 013ce0f7c2b..b99e269e5f7 100644 --- a/scripts/e2e/lib/parallels-macos-common.sh +++ b/scripts/e2e/lib/parallels-macos-common.sh @@ -58,33 +58,49 @@ parallels_macos_desktop_user_exec_with_secret_file() { fi local wrapper - wrapper=' + local wrapper_path + wrapper_path="/tmp/openclaw-secret-env-wrapper-$RANDOM-$RANDOM.sh" + wrapper='#!/bin/bash set -e +cleanup() { + rm -f "${OPENCLAW_WRAPPER_FILE:-}" +} +trap cleanup EXIT if [ -n "${OPENCLAW_SECRET_ENV_NAME:-}" ] && [ -n "${OPENCLAW_SECRET_FILE:-}" ] && [ -f "$OPENCLAW_SECRET_FILE" ]; then secret_value="$(cat "$OPENCLAW_SECRET_FILE")" rm -f "$OPENCLAW_SECRET_FILE" export "${OPENCLAW_SECRET_ENV_NAME}=${secret_value}" fi -exec "$@" +"$@" ' + if [[ "$user_flag" == "current-user" ]]; then + printf '%s' "$wrapper" | /usr/bin/base64 | prlctl exec "$vm_name" \ + --current-user /usr/bin/base64 -D -o "$wrapper_path" + else + printf '%s' "$wrapper" | /usr/bin/base64 | prlctl exec "$vm_name" \ + /usr/bin/sudo -H -u "$user_name" /usr/bin/base64 -D -o "$wrapper_path" + fi + if [[ "$user_flag" == "current-user" ]]; then prlctl exec "$vm_name" --current-user /usr/bin/env \ "PATH=$path_value" \ "OPENCLAW_SECRET_ENV_NAME=$api_key_env" \ "OPENCLAW_SECRET_FILE=$secret_path" \ - /bin/bash -c "$wrapper" openclaw-secret-env "$@" + "OPENCLAW_WRAPPER_FILE=$wrapper_path" \ + /bin/bash "$wrapper_path" "$@" return fi - prlctl exec "$vm_name" /usr/bin/sudo -u "$user_name" /usr/bin/env \ + prlctl exec "$vm_name" /usr/bin/sudo -H -u "$user_name" /usr/bin/env \ "HOME=$home" \ "USER=$user_name" \ "LOGNAME=$user_name" \ "PATH=$path_value" \ "OPENCLAW_SECRET_ENV_NAME=$api_key_env" \ "OPENCLAW_SECRET_FILE=$secret_path" \ - /bin/bash -c "$wrapper" openclaw-secret-env "$@" + "OPENCLAW_WRAPPER_FILE=$wrapper_path" \ + /bin/bash "$wrapper_path" "$@" } parallels_macos_desktop_user_exec() { diff --git a/scripts/e2e/parallels-npm-update-smoke.sh b/scripts/e2e/parallels-npm-update-smoke.sh index c72ee222c33..71e00a54849 100755 --- a/scripts/e2e/parallels-npm-update-smoke.sh +++ b/scripts/e2e/parallels-npm-update-smoke.sh @@ -31,7 +31,7 @@ UPDATE_EXPECTED_NEEDLE="" API_KEY_VALUE="" PROGRESS_INTERVAL_S=15 PROGRESS_STALE_S=60 -TIMEOUT_UPDATE_S=300 +TIMEOUT_UPDATE_S="${OPENCLAW_PARALLELS_NPM_UPDATE_TIMEOUT_S:-900}" TIMEOUT_UPDATE_POLL_GRACE_S=60 child_job_running() {