test: stabilize parallels npm update smoke

This commit is contained in:
Peter Steinberger
2026-04-16 21:50:33 +01:00
parent c9103c2e47
commit cd45f53b4e
2 changed files with 22 additions and 6 deletions

View File

@@ -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() {

View File

@@ -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() {