From 2955af73f4143697c2d03b2577f6267e10c7c829 Mon Sep 17 00:00:00 2001 From: ops Date: Tue, 2 Jun 2026 16:11:34 +0000 Subject: [PATCH] deploy: domain-collision pre-check with clear error --- action.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/action.yml b/action.yml index e95c158..26757b3 100644 --- a/action.yml +++ b/action.yml @@ -138,6 +138,22 @@ runs: fi fi + # ---- domain collision pre-check: clear error instead of a raw caddy + # "ambiguous site definition" when another deploy already serves this domain ---- + for dom in "$DOMAIN" ${ALT:+"$ALT"}; do + for frag in /srv/platform/caddy/sites/*.caddy; do + [ -f "$frag" ] || continue + base=$(basename "$frag") + { [ "$base" = "${SLUG}.caddy" ] || [ "$base" = "_platform.caddy" ]; } && continue + for a in $(sed -n '1,/{/p' "$frag" | tr -d '{' | tr ',' ' '); do + if [ "$a" = "$dom" ]; then + echo "::error::domain '$dom' is already served by another deploy ($base). Change DOMAIN in your .env, or ask the admin to free it (remove $base)." + exit 1 + fi + done + done + done + case "$DT" in static) # build IN-PLACE — the job runs on platform-ci-base which has bun, so no