mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-19 14:34:46 +00:00
87 lines
2.9 KiB
Bash
87 lines
2.9 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
source scripts/lib/openclaw-e2e-instance.sh
|
|
openclaw_e2e_eval_test_state_from_b64 "${OPENCLAW_TEST_STATE_SCRIPT_B64:?missing OPENCLAW_TEST_STATE_SCRIPT_B64}"
|
|
export OPENCLAW_SKIP_CHANNELS=1
|
|
export OPENCLAW_SKIP_GMAIL_WATCHER=1
|
|
export OPENCLAW_SKIP_CRON=1
|
|
export OPENCLAW_SKIP_CANVAS_HOST=1
|
|
export OPENCLAW_SKIP_BROWSER_CONTROL_SERVER=1
|
|
export OPENCLAW_SKIP_ACPX_RUNTIME=1
|
|
export OPENCLAW_SKIP_ACPX_RUNTIME_PROBE=1
|
|
export OPENCLAW_AGENT_HARNESS_FALLBACK=none
|
|
|
|
for profile_path in "$HOME/.profile" /home/appuser/.profile; do
|
|
if [ -f "$profile_path" ] && [ -r "$profile_path" ]; then
|
|
set +e +u
|
|
# shellcheck disable=SC1090
|
|
source "$profile_path"
|
|
set -euo pipefail
|
|
break
|
|
fi
|
|
done
|
|
if [ -z "${OPENAI_API_KEY:-}" ]; then
|
|
echo "ERROR: OPENAI_API_KEY was not available after sourcing ~/.profile." >&2
|
|
exit 1
|
|
fi
|
|
export OPENAI_API_KEY
|
|
if [ -n "${OPENAI_BASE_URL:-}" ]; then
|
|
export OPENAI_BASE_URL
|
|
fi
|
|
|
|
PORT="${PORT:?missing PORT}"
|
|
TOKEN="${OPENCLAW_GATEWAY_TOKEN:?missing OPENCLAW_GATEWAY_TOKEN}"
|
|
MODEL_REF="${OPENCLAW_OPENAI_CHAT_TOOLS_MODEL:?missing OPENCLAW_OPENAI_CHAT_TOOLS_MODEL}"
|
|
GATEWAY_LOG="/tmp/openclaw-openai-chat-tools-gateway.log"
|
|
CLIENT_LOG="/tmp/openclaw-openai-chat-tools-client.log"
|
|
gateway_pid=""
|
|
|
|
cleanup() {
|
|
openclaw_e2e_stop_process "$gateway_pid"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
dump_debug_logs() {
|
|
local status="$1"
|
|
echo "OpenAI Chat Completions tools Docker E2E failed with exit code $status" >&2
|
|
openclaw_e2e_dump_logs "$GATEWAY_LOG" "$CLIENT_LOG"
|
|
if [ -f "$OPENCLAW_CONFIG_PATH" ]; then
|
|
echo "--- $OPENCLAW_CONFIG_PATH keys ---" >&2
|
|
node -e "const fs=require('fs'); const cfg=JSON.parse(fs.readFileSync(process.argv[1],'utf8')); console.error(JSON.stringify({model:cfg.agents?.defaults?.model, tools:cfg.tools, provider:cfg.models?.providers?.openai && {api:cfg.models.providers.openai.api, baseUrl:cfg.models.providers.openai.baseUrl, agentRuntime:cfg.models.providers.openai.agentRuntime}}, null, 2));" "$OPENCLAW_CONFIG_PATH" || true
|
|
fi
|
|
}
|
|
trap 'status=$?; dump_debug_logs "$status"; exit "$status"' ERR
|
|
|
|
entry="$(openclaw_e2e_resolve_entrypoint)"
|
|
mkdir -p "$OPENCLAW_STATE_DIR" "$OPENCLAW_TEST_WORKSPACE_DIR"
|
|
|
|
node scripts/e2e/lib/openai-chat-tools/write-config.mjs
|
|
|
|
gateway_pid="$(openclaw_e2e_start_gateway "$entry" "$PORT" "$GATEWAY_LOG")"
|
|
for _ in $(seq 1 360); do
|
|
if ! kill -0 "$gateway_pid" 2>/dev/null; then
|
|
echo "gateway exited before listening" >&2
|
|
exit 1
|
|
fi
|
|
if node "$entry" gateway health \
|
|
--url "ws://127.0.0.1:$PORT" \
|
|
--token "$TOKEN" \
|
|
--timeout 120000 \
|
|
--json >/dev/null 2>&1; then
|
|
break
|
|
fi
|
|
sleep 0.25
|
|
done
|
|
node "$entry" gateway health \
|
|
--url "ws://127.0.0.1:$PORT" \
|
|
--token "$TOKEN" \
|
|
--timeout 120000 \
|
|
--json >/dev/null
|
|
|
|
PORT="$PORT" OPENCLAW_GATEWAY_TOKEN="$TOKEN" MODEL_REF="$MODEL_REF" \
|
|
node scripts/e2e/lib/openai-chat-tools/client.mjs >"$CLIENT_LOG" 2>&1
|
|
|
|
cat "$CLIENT_LOG"
|
|
echo "OpenAI Chat Completions tools Docker E2E passed"
|