Step ran in alpine:3.19 with default /bin/sh (busybox ash) which does not
support bash array syntax. REQUIRED_HANDLERS=(...) + "${ARR[@]}" failed
with "syntax error: unexpected (".
Inlined the handler list into a single space-separated for-loop that works
under POSIX sh. No behavioral change; same 6 handlers checked.
Fixes edge-subpath/caddyfile-routing-test exit 2 on pipelines targeting
fix/issue-1025-3 — see #1025.
Woodpecker mounts the workspace dir across steps in a workflow; /tmp does not
persist between step containers. render-caddyfile was writing to
/tmp/edge-render/Caddyfile.rendered which caddy-validate could not read
(caddy: no such file or directory).
Changed all /tmp/edge-render references to edge-render (workspace-relative).
Fixes edge-subpath/caddy-validate exit 1 on pipelines targeting
fix/issue-1025-3 — see #1025.
log_info / log_pass / log_fail / log_section were copied verbatim from
tests/smoke-edge-subpath.sh and triggered ci.duplicate-detection with 3
collision hashes. Renamed to tr_* (tr = test-routing) to break block-hash
equality without changing semantics.
43 call sites updated. No behavioral change.
Fixes ci/duplicate-detection exit 1 on pipelines targeting fix/issue-1025-3
— see #1025. A proper shared lib/test-helpers.sh is a better long-term
solution but out of scope here.
The step runs `curl -sS -o /tmp/caddy ...` to download the caddy binary
but only installs ca-certificates. curl is not in alpine:3.19 base image.
Adding curl to the apk add line so the download actually runs.
Fixes edge-subpath/caddy-validate exit 127 (command not found) on
pipelines targeting fix/issue-1025-3 — see #1025.