From d301f75523094592dae5c5e3b5a549f25ebb4ffe Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 6 Mar 2026 07:01:07 +0000 Subject: [PATCH 1/3] fix: webapp-entrypoint.sh CI path bypasses contracts.env sourcing without documentation (#422) Co-Authored-By: Claude Sonnet 4.6 --- containers/webapp-entrypoint.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/containers/webapp-entrypoint.sh b/containers/webapp-entrypoint.sh index 365fc11..98ddfe2 100755 --- a/containers/webapp-entrypoint.sh +++ b/containers/webapp-entrypoint.sh @@ -3,12 +3,17 @@ set -euo pipefail if [[ "${CI:-}" == "true" ]]; then # ── CI path ──────────────────────────────────────────────────────── + # In CI, contracts.env is NOT sourced here. Instead, the calling CI step + # (.woodpecker/e2e.yml) sources contracts.env itself and exports + # VITE_KRAIKEN_ADDRESS and VITE_STAKE_ADDRESS directly into the environment + # before this entrypoint runs. The :? guards below enforce that those + # variables have been provided. cd /app/web-app echo "[webapp-ci] Starting Web App..." - : "${VITE_KRAIKEN_ADDRESS:?VITE_KRAIKEN_ADDRESS is required}" - : "${VITE_STAKE_ADDRESS:?VITE_STAKE_ADDRESS is required}" + : "${VITE_KRAIKEN_ADDRESS:?VITE_KRAIKEN_ADDRESS is required — set by .woodpecker/e2e.yml from contracts.env}" + : "${VITE_STAKE_ADDRESS:?VITE_STAKE_ADDRESS is required — set by .woodpecker/e2e.yml from contracts.env}" # Disable Vue DevTools in CI to avoid path resolution issues export CI=true From 6c54a9265791bcd1574bd7500ce09e456aebcb14 Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 6 Mar 2026 07:24:54 +0000 Subject: [PATCH 2/3] fix: webapp-entrypoint.sh CI path bypasses contracts.env sourcing without documentation (#422) Co-Authored-By: Claude Sonnet 4.6 --- containers/webapp-entrypoint.sh | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/containers/webapp-entrypoint.sh b/containers/webapp-entrypoint.sh index 98ddfe2..9e8d5b0 100755 --- a/containers/webapp-entrypoint.sh +++ b/containers/webapp-entrypoint.sh @@ -3,17 +3,26 @@ set -euo pipefail if [[ "${CI:-}" == "true" ]]; then # ── CI path ──────────────────────────────────────────────────────── - # In CI, contracts.env is NOT sourced here. Instead, the calling CI step - # (.woodpecker/e2e.yml) sources contracts.env itself and exports - # VITE_KRAIKEN_ADDRESS and VITE_STAKE_ADDRESS directly into the environment - # before this entrypoint runs. The :? guards below enforce that those - # variables have been provided. + # NOTE: this block is NOT executed by the .woodpecker/e2e.yml pipeline. + # Woodpecker runs the webapp image as a service with a `commands:` block, + # which replaces the Docker ENTRYPOINT entirely — dumb-init and this script + # are bypassed. The e2e.yml commands block sources contracts.env and starts + # `npm run dev` inline (see .woodpecker/e2e.yml, webapp service, ~line 129). + # + # This path fires only for manual invocations, e.g.: + # docker run -e CI=true \ + # -e VITE_KRAIKEN_ADDRESS=0x... \ + # -e VITE_STAKE_ADDRESS=0x... \ + # webapp-ci + # + # VITE_KRAIKEN_ADDRESS and VITE_STAKE_ADDRESS must be supplied by the caller; + # they are not derived from contracts.env here. cd /app/web-app echo "[webapp-ci] Starting Web App..." - : "${VITE_KRAIKEN_ADDRESS:?VITE_KRAIKEN_ADDRESS is required — set by .woodpecker/e2e.yml from contracts.env}" - : "${VITE_STAKE_ADDRESS:?VITE_STAKE_ADDRESS is required — set by .woodpecker/e2e.yml from contracts.env}" + : "${VITE_KRAIKEN_ADDRESS:?VITE_KRAIKEN_ADDRESS must be supplied by the caller (not sourced from contracts.env in this path)}" + : "${VITE_STAKE_ADDRESS:?VITE_STAKE_ADDRESS must be supplied by the caller (not sourced from contracts.env in this path)}" # Disable Vue DevTools in CI to avoid path resolution issues export CI=true From 34dbd486541b501692dcee43d7db2d3edfa01882 Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 6 Mar 2026 07:34:50 +0000 Subject: [PATCH 3/3] ci: retrigger after infra failure