mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 08:20:42 +00:00
71 lines
3.2 KiB
Bash
71 lines
3.2 KiB
Bash
run_plugins_clawhub_scenario() {
|
|
if [ "${OPENCLAW_PLUGINS_E2E_CLAWHUB:-1}" = "0" ]; then
|
|
echo "Skipping ClawHub plugin install and uninstall (OPENCLAW_PLUGINS_E2E_CLAWHUB=0)."
|
|
else
|
|
echo "Testing ClawHub plugin install and uninstall..."
|
|
CLAWHUB_PLUGIN_SPEC="${OPENCLAW_PLUGINS_E2E_CLAWHUB_SPEC:-clawhub:@openclaw/kitchen-sink}"
|
|
CLAWHUB_PLUGIN_ID="${OPENCLAW_PLUGINS_E2E_CLAWHUB_ID:-openclaw-kitchen-sink-fixture}"
|
|
export CLAWHUB_PLUGIN_SPEC CLAWHUB_PLUGIN_ID
|
|
|
|
start_clawhub_fixture_server() {
|
|
local fixture_dir="$1"
|
|
local server_log="$fixture_dir/clawhub-fixture.log"
|
|
local server_port_file="$fixture_dir/clawhub-fixture-port"
|
|
local server_pid_file="$fixture_dir/clawhub-fixture-pid"
|
|
|
|
node scripts/e2e/lib/clawhub-fixture-server.cjs plugins "$server_port_file" >"$server_log" 2>&1 &
|
|
local server_pid="$!"
|
|
echo "$server_pid" >"$server_pid_file"
|
|
|
|
for _ in $(seq 1 100); do
|
|
if [[ -s "$server_port_file" ]]; then
|
|
export OPENCLAW_CLAWHUB_URL="http://127.0.0.1:$(cat "$server_port_file")"
|
|
trap 'if [[ -f "'"$server_pid_file"'" ]]; then kill "$(cat "'"$server_pid_file"'")" 2>/dev/null || true; fi' EXIT
|
|
return 0
|
|
fi
|
|
if ! kill -0 "$server_pid" 2>/dev/null; then
|
|
cat "$server_log"
|
|
return 1
|
|
fi
|
|
sleep 0.1
|
|
done
|
|
|
|
cat "$server_log"
|
|
echo "Timed out waiting for ClawHub fixture server." >&2
|
|
return 1
|
|
}
|
|
|
|
if [[ "${OPENCLAW_PLUGINS_E2E_LIVE_CLAWHUB:-0}" = "1" ]]; then
|
|
export OPENCLAW_CLAWHUB_URL="${OPENCLAW_CLAWHUB_URL:-${CLAWHUB_URL:-https://clawhub.ai}}"
|
|
export NPM_CONFIG_REGISTRY="${OPENCLAW_PLUGINS_E2E_LIVE_NPM_REGISTRY:-https://registry.npmjs.org/}"
|
|
else
|
|
# Keep the release-path smoke hermetic; live ClawHub can rate-limit CI.
|
|
if [[ -n "${OPENCLAW_CLAWHUB_URL:-}" || -n "${CLAWHUB_URL:-}" ]]; then
|
|
echo "Ignoring ambient ClawHub URL for fixture-mode plugin E2E; set OPENCLAW_PLUGINS_E2E_LIVE_CLAWHUB=1 for live ClawHub."
|
|
fi
|
|
unset OPENCLAW_CLAWHUB_URL CLAWHUB_URL
|
|
clawhub_fixture_dir="$(mktemp -d "/tmp/openclaw-clawhub-fixture.XXXXXX")"
|
|
start_clawhub_fixture_server "$clawhub_fixture_dir"
|
|
fi
|
|
|
|
node scripts/e2e/lib/plugins/assertions.mjs clawhub-preflight
|
|
|
|
run_logged install-clawhub node "$OPENCLAW_ENTRY" plugins install "$CLAWHUB_PLUGIN_SPEC"
|
|
node "$OPENCLAW_ENTRY" plugins list --json >/tmp/plugins-clawhub-installed.json
|
|
node "$OPENCLAW_ENTRY" plugins inspect "$CLAWHUB_PLUGIN_ID" --json >/tmp/plugins-clawhub-inspect.json
|
|
|
|
node scripts/e2e/lib/plugins/assertions.mjs clawhub-installed
|
|
|
|
node "$OPENCLAW_ENTRY" plugins update "$CLAWHUB_PLUGIN_ID" >/tmp/plugins-clawhub-update.log 2>&1
|
|
node "$OPENCLAW_ENTRY" plugins list --json >/tmp/plugins-clawhub-updated.json
|
|
node "$OPENCLAW_ENTRY" plugins inspect "$CLAWHUB_PLUGIN_ID" --json >/tmp/plugins-clawhub-updated-inspect.json
|
|
|
|
node scripts/e2e/lib/plugins/assertions.mjs clawhub-updated
|
|
|
|
run_logged uninstall-clawhub node "$OPENCLAW_ENTRY" plugins uninstall "$CLAWHUB_PLUGIN_SPEC" --force
|
|
node "$OPENCLAW_ENTRY" plugins list --json >/tmp/plugins-clawhub-uninstalled.json
|
|
|
|
node scripts/e2e/lib/plugins/assertions.mjs clawhub-removed
|
|
fi
|
|
}
|