diff --git a/scripts/e2e/lib/doctor-install-switch/scenario.sh b/scripts/e2e/lib/doctor-install-switch/scenario.sh index b9e14176de4..1e24abbcbc8 100644 --- a/scripts/e2e/lib/doctor-install-switch/scenario.sh +++ b/scripts/e2e/lib/doctor-install-switch/scenario.sh @@ -32,7 +32,7 @@ tar -xzf "$package_tgz" -C "$git_root" --strip-components=1 git commit -qm "test fixture" ) npm_log="/tmp/openclaw-doctor-switch-npm-install.log" -if ! npm install -g --prefix /tmp/npm-prefix "$package_tgz" >"$npm_log" 2>&1; then +if ! npm install -g --prefix /tmp/npm-prefix --omit=optional "$package_tgz" >"$npm_log" 2>&1; then cat "$npm_log" exit 1 fi diff --git a/scripts/lib/live-docker-auth.sh b/scripts/lib/live-docker-auth.sh index ed0aff96c65..bcee7736019 100644 --- a/scripts/lib/live-docker-auth.sh +++ b/scripts/lib/live-docker-auth.sh @@ -18,6 +18,34 @@ openclaw_live_trim() { printf '%s' "$value" } +openclaw_live_truthy() { + case "${1:-}" in + 1 | true | TRUE | yes | YES | on | ON) + return 0 + ;; + *) + return 1 + ;; + esac +} + +openclaw_live_is_ci() { + openclaw_live_truthy "${CI:-}" || openclaw_live_truthy "${GITHUB_ACTIONS:-}" +} + +openclaw_live_default_profile_file() { + if [[ -n "${OPENCLAW_PROFILE_FILE:-}" ]]; then + printf '%s\n' "$OPENCLAW_PROFILE_FILE" + return 0 + fi + local testbox_profile="$HOME/.openclaw-testbox-live.profile" + if [[ -f "$testbox_profile" ]]; then + printf '%s\n' "$testbox_profile" + return 0 + fi + printf '%s\n' "$HOME/.profile" +} + openclaw_live_validate_relative_home_path() { local value value="$(openclaw_live_trim "${1:-}")" diff --git a/scripts/test-live-acp-bind-docker.sh b/scripts/test-live-acp-bind-docker.sh index aabe8b2aad4..276dd018901 100644 --- a/scripts/test-live-acp-bind-docker.sh +++ b/scripts/test-live-acp-bind-docker.sh @@ -15,7 +15,7 @@ IMAGE_NAME="${OPENCLAW_IMAGE:-openclaw:local}" LIVE_IMAGE_NAME="${OPENCLAW_LIVE_IMAGE:-${IMAGE_NAME}-live}" CONFIG_DIR="${OPENCLAW_CONFIG_DIR:-$HOME/.openclaw}" WORKSPACE_DIR="${OPENCLAW_WORKSPACE_DIR:-$HOME/.openclaw/workspace}" -PROFILE_FILE="${OPENCLAW_PROFILE_FILE:-$HOME/.profile}" +PROFILE_FILE="$(openclaw_live_default_profile_file)" ACP_AGENT_LIST_RAW="${OPENCLAW_LIVE_ACP_BIND_AGENTS:-${OPENCLAW_LIVE_ACP_BIND_AGENT:-claude,codex,gemini}}" TEMP_DIRS=() DOCKER_USER="${OPENCLAW_DOCKER_USER:-node}" @@ -70,7 +70,7 @@ trap cleanup_temp_dirs EXIT if [[ -n "${OPENCLAW_DOCKER_CLI_TOOLS_DIR:-}" ]]; then CLI_TOOLS_DIR="${OPENCLAW_DOCKER_CLI_TOOLS_DIR}" -elif [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then +elif openclaw_live_is_ci; then CLI_TOOLS_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/openclaw-docker-cli-tools.XXXXXX")" TEMP_DIRS+=("$CLI_TOOLS_DIR") else @@ -78,7 +78,7 @@ else fi if [[ -n "${OPENCLAW_DOCKER_CACHE_HOME_DIR:-}" ]]; then CACHE_HOME_DIR="${OPENCLAW_DOCKER_CACHE_HOME_DIR}" -elif [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then +elif openclaw_live_is_ci; then CACHE_HOME_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/openclaw-docker-cache.XXXXXX")" TEMP_DIRS+=("$CACHE_HOME_DIR") else @@ -87,7 +87,7 @@ fi mkdir -p "$CLI_TOOLS_DIR" mkdir -p "$CACHE_HOME_DIR" -if [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then +if openclaw_live_is_ci; then DOCKER_USER="$(id -u):$(id -g)" fi @@ -289,7 +289,7 @@ for ACP_AGENT in "${ACP_AGENTS[@]}"; do DOCKER_HOME_MOUNT=() DOCKER_AUTH_PRESTAGED=0 - if [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then + if openclaw_live_is_ci; then DOCKER_HOME_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/openclaw-docker-home.XXXXXX")" TEMP_DIRS+=("$DOCKER_HOME_DIR") DOCKER_HOME_MOUNT=(-v "$DOCKER_HOME_DIR":/home/node) diff --git a/scripts/test-live-cli-backend-docker.sh b/scripts/test-live-cli-backend-docker.sh index 7fc1bbbea04..7c99ec8154e 100644 --- a/scripts/test-live-cli-backend-docker.sh +++ b/scripts/test-live-cli-backend-docker.sh @@ -15,7 +15,7 @@ IMAGE_NAME="${OPENCLAW_IMAGE:-openclaw:local}" LIVE_IMAGE_NAME="${OPENCLAW_LIVE_IMAGE:-${IMAGE_NAME}-live}" CONFIG_DIR="${OPENCLAW_CONFIG_DIR:-$HOME/.openclaw}" WORKSPACE_DIR="${OPENCLAW_WORKSPACE_DIR:-$HOME/.openclaw/workspace}" -PROFILE_FILE="${OPENCLAW_PROFILE_FILE:-$HOME/.profile}" +PROFILE_FILE="$(openclaw_live_default_profile_file)" DEFAULT_PROVIDER="${OPENCLAW_DOCKER_CLI_BACKEND_PROVIDER:-claude-cli}" CLI_MODEL="${OPENCLAW_LIVE_CLI_BACKEND_MODEL:-}" CLI_PROVIDER="${CLI_MODEL%%/*}" @@ -97,7 +97,7 @@ trap cleanup_temp_dirs EXIT if [[ -n "${OPENCLAW_DOCKER_CLI_TOOLS_DIR:-}" ]]; then CLI_TOOLS_DIR="${OPENCLAW_DOCKER_CLI_TOOLS_DIR}" -elif [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then +elif openclaw_live_is_ci; then CLI_TOOLS_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/openclaw-docker-cli-tools.XXXXXX")" TEMP_DIRS+=("$CLI_TOOLS_DIR") else @@ -105,7 +105,7 @@ else fi if [[ -n "${OPENCLAW_DOCKER_CACHE_HOME_DIR:-}" ]]; then CACHE_HOME_DIR="${OPENCLAW_DOCKER_CACHE_HOME_DIR}" -elif [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then +elif openclaw_live_is_ci; then CACHE_HOME_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/openclaw-docker-cache.XXXXXX")" TEMP_DIRS+=("$CACHE_HOME_DIR") else @@ -114,7 +114,7 @@ fi mkdir -p "$CLI_TOOLS_DIR" mkdir -p "$CACHE_HOME_DIR" -if [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then +if openclaw_live_is_ci; then DOCKER_USER="$(id -u):$(id -g)" DOCKER_HOME_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/openclaw-docker-home.XXXXXX")" TEMP_DIRS+=("$DOCKER_HOME_DIR") diff --git a/scripts/test-live-codex-harness-docker.sh b/scripts/test-live-codex-harness-docker.sh index 7d322c1fe33..346bd86950b 100644 --- a/scripts/test-live-codex-harness-docker.sh +++ b/scripts/test-live-codex-harness-docker.sh @@ -15,7 +15,7 @@ IMAGE_NAME="${OPENCLAW_IMAGE:-openclaw:local}" LIVE_IMAGE_NAME="${OPENCLAW_LIVE_IMAGE:-${IMAGE_NAME}-live}" CONFIG_DIR="${OPENCLAW_CONFIG_DIR:-$HOME/.openclaw}" WORKSPACE_DIR="${OPENCLAW_WORKSPACE_DIR:-$HOME/.openclaw/workspace}" -PROFILE_FILE="${OPENCLAW_PROFILE_FILE:-$HOME/.profile}" +PROFILE_FILE="$(openclaw_live_default_profile_file)" CODEX_HARNESS_AUTH_MODE="${OPENCLAW_LIVE_CODEX_HARNESS_AUTH:-codex-auth}" TEMP_DIRS=() DOCKER_USER="${OPENCLAW_DOCKER_USER:-node}" diff --git a/scripts/test-live-gateway-models-docker.sh b/scripts/test-live-gateway-models-docker.sh index 68b71423c6a..cda14239cd0 100755 --- a/scripts/test-live-gateway-models-docker.sh +++ b/scripts/test-live-gateway-models-docker.sh @@ -15,7 +15,7 @@ IMAGE_NAME="${OPENCLAW_IMAGE:-openclaw:local}" LIVE_IMAGE_NAME="${OPENCLAW_LIVE_IMAGE:-${IMAGE_NAME}-live}" CONFIG_DIR="${OPENCLAW_CONFIG_DIR:-$HOME/.openclaw}" WORKSPACE_DIR="${OPENCLAW_WORKSPACE_DIR:-$HOME/.openclaw/workspace}" -PROFILE_FILE="${OPENCLAW_PROFILE_FILE:-$HOME/.profile}" +PROFILE_FILE="$(openclaw_live_default_profile_file)" DOCKER_USER="${OPENCLAW_DOCKER_USER:-node}" TEMP_DIRS=() DOCKER_HOME_MOUNT=() @@ -30,14 +30,14 @@ cleanup_temp_dirs() { trap cleanup_temp_dirs EXIT if [[ -n "${OPENCLAW_DOCKER_CACHE_HOME_DIR:-}" ]]; then CACHE_HOME_DIR="${OPENCLAW_DOCKER_CACHE_HOME_DIR}" -elif [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then +elif openclaw_live_is_ci; then CACHE_HOME_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/openclaw-docker-cache.XXXXXX")" TEMP_DIRS+=("$CACHE_HOME_DIR") else CACHE_HOME_DIR="$HOME/.cache/openclaw/docker-cache" fi mkdir -p "$CACHE_HOME_DIR" -if [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then +if openclaw_live_is_ci; then DOCKER_USER="$(id -u):$(id -g)" DOCKER_HOME_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/openclaw-docker-home.XXXXXX")" TEMP_DIRS+=("$DOCKER_HOME_DIR") diff --git a/scripts/test-live-models-docker.sh b/scripts/test-live-models-docker.sh index 0c8e4ab2b03..e1f38d01d1d 100755 --- a/scripts/test-live-models-docker.sh +++ b/scripts/test-live-models-docker.sh @@ -13,7 +13,7 @@ TRUSTED_HARNESS_DIR="$(cd "$TRUSTED_HARNESS_DIR" && pwd)" source "$TRUSTED_HARNESS_DIR/scripts/lib/live-docker-auth.sh" IMAGE_NAME="${OPENCLAW_IMAGE:-openclaw:local}" LIVE_IMAGE_NAME="${OPENCLAW_LIVE_IMAGE:-${IMAGE_NAME}-live}" -PROFILE_FILE="${OPENCLAW_PROFILE_FILE:-$HOME/.profile}" +PROFILE_FILE="$(openclaw_live_default_profile_file)" DOCKER_USER="${OPENCLAW_DOCKER_USER:-node}" DOCKER_AUTH_PRESTAGED=0 DOCKER_TRUSTED_HARNESS_CONTAINER_DIR="/trusted-harness" @@ -50,14 +50,14 @@ else fi if [[ -n "${OPENCLAW_DOCKER_CACHE_HOME_DIR:-}" ]]; then CACHE_HOME_DIR="${OPENCLAW_DOCKER_CACHE_HOME_DIR}" -elif [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then +elif openclaw_live_is_ci; then CACHE_HOME_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/openclaw-docker-cache.XXXXXX")" TEMP_DIRS+=("$CACHE_HOME_DIR") else CACHE_HOME_DIR="$HOME/.cache/openclaw/docker-cache" fi mkdir -p "$CACHE_HOME_DIR" -if [[ "${CI:-}" == "true" || "${GITHUB_ACTIONS:-}" == "true" ]]; then +if openclaw_live_is_ci; then DOCKER_USER="$(id -u):$(id -g)" DOCKER_HOME_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/openclaw-docker-home.XXXXXX")" TEMP_DIRS+=("$DOCKER_HOME_DIR")