test: harden Parallels fresh install smoke

This commit is contained in:
Peter Steinberger
2026-04-21 05:28:06 +01:00
parent b485ee7e36
commit 6d409a6182
12 changed files with 205 additions and 53 deletions

View File

@@ -36,7 +36,7 @@ TIMEOUT_INSTALL_S=420
TIMEOUT_VERIFY_S=90
TIMEOUT_ONBOARD_S=180
TIMEOUT_AGENT_S=180
TIMEOUT_GATEWAY_S=90
TIMEOUT_GATEWAY_S=240
FRESH_MAIN_STATUS="skip"
FRESH_MAIN_VERSION="skip"
@@ -473,6 +473,10 @@ else:
PY
}
source_tree_dirty_for_build() {
[[ -n "$(git status --porcelain -- src ui packages extensions package.json pnpm-lock.yaml 'tsconfig*.json' 2>/dev/null)" ]]
}
acquire_build_lock() {
local owner_pid=""
while ! mkdir "$BUILD_LOCK_DIR" 2>/dev/null; do
@@ -500,7 +504,7 @@ ensure_current_build() {
acquire_build_lock
head="$(git rev-parse HEAD)"
build_commit="$(current_build_commit)"
if [[ "$build_commit" == "$head" ]]; then
if [[ "$build_commit" == "$head" ]] && ! source_tree_dirty_for_build; then
release_build_lock
return
fi
@@ -866,8 +870,8 @@ run_fresh_main_lane() {
phase_run "fresh.install-main" "$TIMEOUT_INSTALL_S" install_main_tgz "$host_ip" "openclaw-main-fresh.tgz"
FRESH_MAIN_VERSION="$(extract_last_version "$(phase_log_path fresh.install-main)")"
phase_run "fresh.verify-main-version" "$TIMEOUT_VERIFY_S" verify_target_version
phase_run "fresh.inject-bad-plugin" "$TIMEOUT_VERIFY_S" inject_bad_plugin_fixture
phase_run "fresh.onboard-ref" "$TIMEOUT_ONBOARD_S" run_ref_onboard
phase_run "fresh.inject-bad-plugin" "$TIMEOUT_VERIFY_S" inject_bad_plugin_fixture
phase_run "fresh.gateway-start" "$TIMEOUT_GATEWAY_S" start_gateway_background
phase_run "fresh.bad-plugin-diagnostic" "$TIMEOUT_VERIFY_S" verify_bad_plugin_diagnostic
phase_run "fresh.gateway-status" "$TIMEOUT_VERIFY_S" show_gateway_status_compat

View File

@@ -44,11 +44,11 @@ TIMEOUT_INSTALL_S=420
TIMEOUT_UPDATE_S=300
TIMEOUT_UPDATE_POLL_GRACE_S=60
TIMEOUT_VERIFY_S=120
TIMEOUT_ONBOARD_S=240
TIMEOUT_ONBOARD_S=600
TIMEOUT_ONBOARD_PHASE_S=$((TIMEOUT_ONBOARD_S + 120))
# verify_gateway_reachable runs six 30s probes plus short retry sleeps.
TIMEOUT_GATEWAY_S=240
TIMEOUT_AGENT_S=360
TIMEOUT_GATEWAY_S=420
TIMEOUT_AGENT_S=600
FRESH_MAIN_STATUS="skip"
FRESH_MAIN_VERSION="skip"
@@ -860,6 +860,10 @@ else:
PY
}
source_tree_dirty_for_build() {
[[ -n "$(git status --porcelain -- src ui packages extensions package.json pnpm-lock.yaml 'tsconfig*.json' 2>/dev/null)" ]]
}
acquire_build_lock() {
local owner_pid=""
while ! mkdir "$BUILD_LOCK_DIR" 2>/dev/null; do
@@ -887,7 +891,7 @@ ensure_current_build() {
acquire_build_lock
head="$(git rev-parse HEAD)"
build_commit="$(current_build_commit)"
if [[ "$build_commit" == "$head" ]]; then
if [[ "$build_commit" == "$head" ]] && ! source_tree_dirty_for_build; then
release_build_lock
return
fi