From 359fc173e72ed748acb4690e8b0345d706ec8444 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 10 May 2026 02:35:47 +0100 Subject: [PATCH] ci(release): honor Open WebUI smoke mode --- scripts/e2e/openwebui-docker.sh | 10 ++++++++++ test/scripts/docker-build-helper.test.ts | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/scripts/e2e/openwebui-docker.sh b/scripts/e2e/openwebui-docker.sh index 7a842c56de6..fdf37f8fb45 100755 --- a/scripts/e2e/openwebui-docker.sh +++ b/scripts/e2e/openwebui-docker.sh @@ -25,6 +25,15 @@ PROVIDER_TIMEOUT_SECONDS="${OPENCLAW_OPENWEBUI_PROVIDER_TIMEOUT_SECONDS:-900}" PROBE_FETCH_TIMEOUT_MS="${OPENCLAW_OPENWEBUI_FETCH_TIMEOUT_MS:-$((PROVIDER_TIMEOUT_SECONDS * 1000 + 60000))}" DOCKER_COMMAND_TIMEOUT="${OPENCLAW_OPENWEBUI_DOCKER_COMMAND_TIMEOUT:-$((PROVIDER_TIMEOUT_SECONDS + 90))s}" DOCKER_PULL_TIMEOUT="${OPENCLAW_OPENWEBUI_DOCKER_PULL_TIMEOUT:-600s}" +SMOKE_MODE="${OPENWEBUI_SMOKE_MODE:-${OPENCLAW_OPENWEBUI_SMOKE_MODE:-chat}}" + +case "$SMOKE_MODE" in + chat | models) ;; + *) + echo "Unsupported OPENWEBUI_SMOKE_MODE: $SMOKE_MODE" >&2 + exit 2 + ;; +esac PROFILE_FILE="${OPENCLAW_TESTBOX_PROFILE_FILE:-$HOME/.openclaw-testbox-live.profile}" if [[ -f "$PROFILE_FILE" && -r "$PROFILE_FILE" ]]; then @@ -149,6 +158,7 @@ if ! docker_e2e_docker_cmd exec \ -e "OPENWEBUI_ADMIN_PASSWORD=$ADMIN_PASSWORD" \ -e "OPENWEBUI_EXPECTED_NONCE=$PROMPT_NONCE" \ -e "OPENWEBUI_PROMPT=$PROMPT" \ + -e "OPENWEBUI_SMOKE_MODE=$SMOKE_MODE" \ -e "OPENWEBUI_MODEL_ATTEMPTS=72" \ -e "OPENWEBUI_MODEL_RETRY_MS=5000" \ -e "OPENWEBUI_FETCH_TIMEOUT_MS=$PROBE_FETCH_TIMEOUT_MS" \ diff --git a/test/scripts/docker-build-helper.test.ts b/test/scripts/docker-build-helper.test.ts index 476fb661eb2..ffefaa1aa6f 100644 --- a/test/scripts/docker-build-helper.test.ts +++ b/test/scripts/docker-build-helper.test.ts @@ -13,6 +13,7 @@ const OPENAI_WEB_SEARCH_MINIMAL_SCENARIO_PATH = "scripts/e2e/lib/openai-web-search-minimal/scenario.sh"; const OPENAI_WEB_SEARCH_MINIMAL_CLIENT_PATH = "scripts/e2e/lib/openai-web-search-minimal/client.mjs"; +const OPENWEBUI_DOCKER_E2E_PATH = "scripts/e2e/openwebui-docker.sh"; const BUNDLED_PLUGIN_INSTALL_UNINSTALL_E2E_PATH = "scripts/e2e/bundled-plugin-install-uninstall-docker.sh"; const BUNDLED_PLUGIN_INSTALL_UNINSTALL_SWEEP_PATH = @@ -116,6 +117,7 @@ describe("docker build helper", () => { it("runs release installer E2E against the npm beta tag", () => { const scenarios = readFileSync(DOCKER_E2E_SCENARIOS_PATH, "utf8"); + const openWebUiRunner = readFileSync(OPENWEBUI_DOCKER_E2E_PATH, "utf8"); expect(scenarios).toContain( '"OPENCLAW_INSTALL_TAG=beta OPENCLAW_E2E_MODELS=openai OPENCLAW_INSTALL_E2E_IMAGE=openclaw-install-e2e-openai:local OPENCLAW_INSTALL_E2E_AGENT_TURN_TIMEOUT_SECONDS=1500 OPENCLAW_INSTALL_E2E_AGENT_TURNS_PARALLEL=0 OPENCLAW_INSTALL_E2E_OPENAI_MODEL=openai/gpt-5.4-mini OPENCLAW_INSTALL_E2E_OPENAI_PROVIDER_TIMEOUT_SECONDS=300 pnpm test:install:e2e"', @@ -126,6 +128,10 @@ describe("docker build helper", () => { expect(scenarios).toContain( '"OPENCLAW_OPENWEBUI_MODEL=openai/gpt-5.4-mini OPENWEBUI_SMOKE_MODE=models OPENCLAW_OPENWEBUI_PROVIDER_TIMEOUT_SECONDS=300 OPENCLAW_SKIP_DOCKER_BUILD=1 pnpm test:docker:openwebui"', ); + expect(openWebUiRunner).toContain( + 'SMOKE_MODE="${OPENWEBUI_SMOKE_MODE:-${OPENCLAW_OPENWEBUI_SMOKE_MODE:-chat}}"', + ); + expect(openWebUiRunner).toContain('-e "OPENWEBUI_SMOKE_MODE=$SMOKE_MODE"'); }); it("times and parallelizes release installer E2E agent turns after gateway startup", () => {