openclaw/scripts/e2e/plugins-docker.sh
Vincent Koc 07fe26ecf8
fix(release): consolidate frozen target harness contracts (#136761)
* fix(release): consolidate frozen target harness contracts

Keep current targets strict, source-qualify the frozen plugin fixture dialect, and omit only the mobile reconnect lane when the selected Gateway lacks its required iPhone watch-relay capability.

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>

Co-authored-by: Dallin Romney <dallinromney@gmail.com>

* fix(release): make frozen capability probes pipefail safe

* fix(release): restore frozen core harness dialects

* fix(release): default frozen code-mode catalog mode

* fix(release): bind frozen identity for docker chunks

* fix(release): derive frozen live package mode

* fix(release): materialize frozen bundle MCP client

* fix(release): use frozen typed onboarding contract

* fix(release): make frozen client mount traversable

* fix(release): preserve frozen client module scope

* fix(release): select frozen runtime-context input contract

* fix(release): qualify frozen MCP permission ownership

* fix(release): retain failed Docker harness diagnostics

* test(release): preserve harness cleanup assertion

* Revert "fix(release): qualify frozen MCP permission ownership"

This reverts commit 10028a08371a6c6ccb17ac76742bb0de00c7a957.

---------

Co-authored-by: Dallin Romney <dallinromney@gmail.com>
2026-09-07 13:21:01 -07:00

66 lines
2.4 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
source "$ROOT_DIR/scripts/lib/docker-e2e-image.sh"
source "$ROOT_DIR/scripts/lib/frozen-target-compat.sh"
SOURCE_ROOT="${OPENCLAW_DOCKER_E2E_REPO_ROOT:-$ROOT_DIR}"
IMAGE_NAME="$(docker_e2e_resolve_image "openclaw-plugins-e2e" OPENCLAW_PLUGINS_E2E_IMAGE)"
OPENCLAW_DOCKER_E2E_LOG_PRINT_BYTES="$(
docker_e2e_read_positive_int_env OPENCLAW_DOCKER_E2E_LOG_PRINT_BYTES 65536
)"
CLAW_HUB_PREFLIGHT_BODY_MAX_BYTES="$(
docker_e2e_read_positive_int_env OPENCLAW_PLUGINS_E2E_CLAWHUB_PREFLIGHT_BODY_MAX_BYTES 1048576
)"
CLAW_HUB_PREFLIGHT_TIMEOUT_MS="$(
docker_e2e_read_positive_int_env OPENCLAW_PLUGINS_E2E_CLAWHUB_PREFLIGHT_TIMEOUT_MS 30000
)"
PLUGINS_CLI_TIMEOUT="${OPENCLAW_PLUGINS_CLI_TIMEOUT:-180s}"
openclaw_resolve_frozen_plugin_harness_capabilities "$SOURCE_ROOT"
docker_e2e_build_or_reuse "$IMAGE_NAME" plugins
OPENCLAW_TEST_STATE_SCRIPT_B64="$(docker_e2e_test_state_shell_b64 plugins empty)"
DOCKER_ENV_ARGS=(
-e COREPACK_ENABLE_DOWNLOAD_PROMPT=0
-e "OPENCLAW_DOCKER_E2E_LOG_PRINT_BYTES=$OPENCLAW_DOCKER_E2E_LOG_PRINT_BYTES"
-e "OPENCLAW_PLUGINS_E2E_CLAWHUB_PREFLIGHT_BODY_MAX_BYTES=$CLAW_HUB_PREFLIGHT_BODY_MAX_BYTES"
-e "OPENCLAW_PLUGINS_E2E_CLAWHUB_PREFLIGHT_TIMEOUT_MS=$CLAW_HUB_PREFLIGHT_TIMEOUT_MS"
-e "OPENCLAW_PLUGINS_CLI_TIMEOUT=$PLUGINS_CLI_TIMEOUT"
-e "OPENCLAW_TEST_STATE_SCRIPT_B64=$OPENCLAW_TEST_STATE_SCRIPT_B64"
)
openclaw_append_frozen_plugin_harness_docker_env
for env_name in \
OPENCLAW_PLUGIN_LIFECYCLE_TRACE \
OPENCLAW_PLUGINS_E2E_CLAWHUB \
OPENCLAW_PLUGINS_E2E_LIVE_CLAWHUB \
OPENCLAW_PLUGINS_E2E_CLAWHUB_SPEC \
OPENCLAW_PLUGINS_E2E_CLAWHUB_ID; do
env_value="${!env_name:-}"
if [[ -n "$env_value" && "$env_value" != "undefined" && "$env_value" != "null" ]]; then
DOCKER_ENV_ARGS+=(-e "$env_name")
fi
done
if [[ "${OPENCLAW_PLUGINS_E2E_LIVE_CLAWHUB:-0}" = "1" ]]; then
for env_name in \
OPENCLAW_CLAWHUB_URL \
CLAWHUB_URL \
CLAWHUB_TOKEN \
CLAWHUB_AUTH_TOKEN \
OPENCLAW_PLUGINS_E2E_LIVE_NPM_REGISTRY; do
env_value="${!env_name:-}"
if [[ -n "$env_value" && "$env_value" != "undefined" && "$env_value" != "null" ]]; then
DOCKER_ENV_ARGS+=(-e "$env_name")
fi
done
fi
echo "Running plugins Docker E2E..."
docker_e2e_run_logged_print_with_harness \
plugins-run \
"${DOCKER_ENV_ARGS[@]}" \
"$IMAGE_NAME" \
bash scripts/e2e/lib/plugins/sweep.sh
echo "OK"