


























@@ -4,14 +4,19 @@ set -euo pipefail
44SCRIPT_ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
55ROOT_DIR="${OPENCLAW_LIVE_DOCKER_REPO_ROOT:-$SCRIPT_ROOT_DIR}"
66ROOT_DIR="$(cd "$ROOT_DIR" && pwd)"
7-source "$ROOT_DIR/scripts/lib/live-docker-auth.sh"
7+TRUSTED_HARNESS_DIR="${OPENCLAW_LIVE_CODEX_TRUSTED_HARNESS_DIR:-$SCRIPT_ROOT_DIR}"
8+if [[ -z "$TRUSTED_HARNESS_DIR" || ! -d "$TRUSTED_HARNESS_DIR" ]]; then
9+echo "ERROR: trusted Codex harness directory not found: ${TRUSTED_HARNESS_DIR:-<empty>}." >&2
10+exit 1
11+fi
12+TRUSTED_HARNESS_DIR="$(cd "$TRUSTED_HARNESS_DIR" && pwd)"
13+source "$TRUSTED_HARNESS_DIR/scripts/lib/live-docker-auth.sh"
814IMAGE_NAME="${OPENCLAW_IMAGE:-openclaw:local}"
915LIVE_IMAGE_NAME="${OPENCLAW_LIVE_IMAGE:-${IMAGE_NAME}-live}"
1016CONFIG_DIR="${OPENCLAW_CONFIG_DIR:-$HOME/.openclaw}"
1117WORKSPACE_DIR="${OPENCLAW_WORKSPACE_DIR:-$HOME/.openclaw/workspace}"
1218PROFILE_FILE="${OPENCLAW_PROFILE_FILE:-$HOME/.profile}"
1319CODEX_HARNESS_AUTH_MODE="${OPENCLAW_LIVE_CODEX_HARNESS_AUTH:-codex-auth}"
14-TRUSTED_HARNESS_DIR="${OPENCLAW_LIVE_CODEX_TRUSTED_HARNESS_DIR:-$SCRIPT_ROOT_DIR}"
1520TEMP_DIRS=()
1621DOCKER_USER="${OPENCLAW_DOCKER_USER:-node}"
1722DOCKER_HOME_MOUNT=()
@@ -86,11 +91,8 @@ if [[ -f "$PROFILE_FILE" && -r "$PROFILE_FILE" ]]; then
8691 PROFILE_STATUS="$PROFILE_FILE"
8792fi
889389-if [[ -n "$TRUSTED_HARNESS_DIR" && -d "$TRUSTED_HARNESS_DIR" ]]; then
90- TRUSTED_HARNESS_DIR="$(cd "$TRUSTED_HARNESS_DIR" && pwd)"
91- DOCKER_TRUSTED_HARNESS_CONTAINER_DIR="/trusted-harness"
92- DOCKER_TRUSTED_HARNESS_MOUNT=(-v "$TRUSTED_HARNESS_DIR":"$DOCKER_TRUSTED_HARNESS_CONTAINER_DIR":ro)
93-fi
94+DOCKER_TRUSTED_HARNESS_CONTAINER_DIR="/trusted-harness"
95+DOCKER_TRUSTED_HARNESS_MOUNT=(-v "$TRUSTED_HARNESS_DIR":"$DOCKER_TRUSTED_HARNESS_CONTAINER_DIR":ro)
94969597AUTH_FILES=()
9698if [[ "$CODEX_HARNESS_AUTH_MODE" != "api-key" ]]; then
@@ -170,8 +172,9 @@ if [ "${OPENCLAW_LIVE_CODEX_HARNESS_AUTH:-codex-auth}" != "api-key" ] && [ ! -s
170172 echo "ERROR: missing ~/.codex/auth.json for Codex harness live test." >&2
171173 exit 1
172174fi
175+trusted_scripts_dir="${OPENCLAW_LIVE_DOCKER_SCRIPTS_DIR:-/src/scripts}"
173176if [ "${OPENCLAW_LIVE_CODEX_HARNESS_AUTH:-codex-auth}" != "api-key" ]; then
174- node --import tsx /src/scripts/prepare-codex-ci-auth.ts "$HOME/.codex/auth.json"
177+ node --import tsx "$trusted_scripts_dir/prepare-codex-ci-auth.ts" "$HOME/.codex/auth.json"
175178fi
176179if [ ! -x "$NPM_CONFIG_PREFIX/bin/codex" ]; then
177180 npm install -g @openai/codex
@@ -180,7 +183,7 @@ if [ "${OPENCLAW_LIVE_CODEX_HARNESS_AUTH:-codex-auth}" = "api-key" ]; then
180183 printf '%s\n' "$OPENAI_API_KEY" | "$NPM_CONFIG_PREFIX/bin/codex" login --with-api-key >/dev/null
181184fi
182185tmp_dir="$(mktemp -d)"
183-source /src/scripts/lib/live-docker-stage.sh
186+source "$trusted_scripts_dir/lib/live-docker-stage.sh"
184187openclaw_live_stage_source_tree "$tmp_dir"
185188openclaw_live_stage_node_modules "$tmp_dir"
186189openclaw_live_link_runtime_tree "$tmp_dir"
@@ -196,7 +199,7 @@ fi
196199openclaw_live_prepare_staged_config
197200cd "$tmp_dir"
198201if [ "${OPENCLAW_LIVE_CODEX_HARNESS_USE_CI_SAFE_CODEX_CONFIG:-1}" = "1" ]; then
199- node --import tsx /src/scripts/prepare-codex-ci-config.ts "$HOME/.codex/config.toml" "$tmp_dir"
202+ node --import tsx "$trusted_scripts_dir/prepare-codex-ci-config.ts" "$HOME/.codex/config.toml" "$tmp_dir"
200203fi
201204codex_preflight_log="$tmp_dir/codex-preflight.log"
202205codex_preflight_token="CODEX-PREFLIGHT-OK"
@@ -216,7 +219,7 @@ pnpm test:live ${OPENCLAW_LIVE_CODEX_TEST_FILES:-src/gateway/gateway-codex-harne
216219EOF
217220218221openclaw_live_codex_harness_append_build_extension codex
219-"$ROOT_DIR/scripts/test-live-build-docker.sh"
222+OPENCLAW_LIVE_DOCKER_REPO_ROOT="$ROOT_DIR" "$TRUSTED_HARNESS_DIR/scripts/test-live-build-docker.sh"
220223221224echo "==> Run Codex harness live test in Docker"
222225echo "==> Model: ${OPENCLAW_LIVE_CODEX_HARNESS_MODEL:-codex/gpt-5.5}"
@@ -254,6 +257,7 @@ DOCKER_RUN_ARGS=(docker run --rm -t \
254257 -e OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_ONLY="${OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_ONLY:-}" \
255258 -e OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE="${OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE:-1}" \
256259 -e OPENCLAW_LIVE_CODEX_HARNESS_USE_CI_SAFE_CODEX_CONFIG="${OPENCLAW_LIVE_CODEX_HARNESS_USE_CI_SAFE_CODEX_CONFIG:-1}" \
260+ -e OPENCLAW_LIVE_DOCKER_SCRIPTS_DIR="${DOCKER_TRUSTED_HARNESS_CONTAINER_DIR}/scripts" \
257261 -e OPENCLAW_LIVE_CODEX_TRUSTED_HARNESS_DIR="$DOCKER_TRUSTED_HARNESS_CONTAINER_DIR" \
258262 -e OPENCLAW_LIVE_CODEX_BIND="${OPENCLAW_LIVE_CODEX_BIND:-}" \
259263 -e OPENCLAW_LIVE_CODEX_BIND_MODEL="${OPENCLAW_LIVE_CODEX_BIND_MODEL:-}" \
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。