mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-03 19:34:07 +00:00
72 lines
2.5 KiB
Bash
72 lines
2.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
source "$ROOT_DIR/scripts/lib/docker-e2e-image.sh"
|
|
|
|
IMAGE_NAME="$(docker_e2e_resolve_image "openclaw-openai-chat-tools-e2e" OPENCLAW_OPENAI_CHAT_TOOLS_E2E_IMAGE)"
|
|
SKIP_BUILD="${OPENCLAW_OPENAI_CHAT_TOOLS_E2E_SKIP_BUILD:-0}"
|
|
PORT="${OPENCLAW_OPENAI_CHAT_TOOLS_PORT:-18789}"
|
|
TOKEN="openai-chat-tools-e2e-$$"
|
|
PROFILE_FILE="${OPENCLAW_OPENAI_CHAT_TOOLS_PROFILE_FILE:-${OPENCLAW_TESTBOX_PROFILE_FILE:-$HOME/.openclaw-testbox-live.profile}}"
|
|
if [ ! -f "$PROFILE_FILE" ] && [ -f "$HOME/.profile" ]; then
|
|
PROFILE_FILE="$HOME/.profile"
|
|
fi
|
|
|
|
read_profile_openai_api_key() {
|
|
local profile_file="$1"
|
|
(
|
|
set +u
|
|
set -a
|
|
# shellcheck disable=SC1090
|
|
source "$profile_file" >/dev/null
|
|
set +a
|
|
printf '%s' "${OPENAI_API_KEY:-}"
|
|
)
|
|
}
|
|
|
|
PROFILE_STATUS="none"
|
|
if [ -f "$PROFILE_FILE" ] && [ -r "$PROFILE_FILE" ]; then
|
|
PROFILE_STATUS="$PROFILE_FILE"
|
|
fi
|
|
|
|
OPENAI_API_KEY_VALUE="${OPENAI_API_KEY:-}"
|
|
if [ "$PROFILE_STATUS" != "none" ]; then
|
|
OPENAI_API_KEY_VALUE="$(read_profile_openai_api_key "$PROFILE_FILE")"
|
|
fi
|
|
if [[ "$OPENAI_API_KEY_VALUE" == "undefined" || "$OPENAI_API_KEY_VALUE" == "null" ]]; then
|
|
OPENAI_API_KEY_VALUE=""
|
|
fi
|
|
if [ -z "$OPENAI_API_KEY_VALUE" ]; then
|
|
echo "ERROR: OPENAI_API_KEY was not available after sourcing $PROFILE_STATUS." >&2
|
|
exit 1
|
|
fi
|
|
|
|
docker_e2e_build_or_reuse "$IMAGE_NAME" openai-chat-tools "$ROOT_DIR/scripts/e2e/Dockerfile" "$ROOT_DIR" "" "$SKIP_BUILD"
|
|
OPENCLAW_TEST_STATE_SCRIPT_B64="$(docker_e2e_test_state_shell_b64 openai-chat-tools empty)"
|
|
|
|
PROFILE_MOUNT=()
|
|
if [ -f "$PROFILE_FILE" ] && [ -r "$PROFILE_FILE" ]; then
|
|
set -a
|
|
# shellcheck disable=SC1090
|
|
source "$PROFILE_FILE"
|
|
set +a
|
|
PROFILE_MOUNT=(-v "$PROFILE_FILE":/home/appuser/.profile:ro)
|
|
PROFILE_STATUS="$PROFILE_FILE"
|
|
fi
|
|
|
|
echo "Running OpenAI Chat Completions tools Docker E2E..."
|
|
echo "Profile file: $PROFILE_STATUS"
|
|
docker_e2e_run_logged_with_harness openai-chat-tools \
|
|
-e COREPACK_ENABLE_DOWNLOAD_PROMPT=0 \
|
|
-e OPENAI_API_KEY \
|
|
-e OPENAI_BASE_URL \
|
|
-e "OPENCLAW_GATEWAY_TOKEN=$TOKEN" \
|
|
-e "OPENCLAW_OPENAI_CHAT_TOOLS_MODEL=${OPENCLAW_OPENAI_CHAT_TOOLS_MODEL:-openai/gpt-5.4-mini}" \
|
|
-e "OPENCLAW_OPENAI_CHAT_TOOLS_TIMEOUT_SECONDS=${OPENCLAW_OPENAI_CHAT_TOOLS_TIMEOUT_SECONDS:-180}" \
|
|
-e "OPENCLAW_TEST_STATE_SCRIPT_B64=$OPENCLAW_TEST_STATE_SCRIPT_B64" \
|
|
-e "PORT=$PORT" \
|
|
"${PROFILE_MOUNT[@]}" \
|
|
"$IMAGE_NAME" \
|
|
bash scripts/e2e/lib/openai-chat-tools/scenario.sh
|