fix(scripts): host-house.sh builds from main by default
CI / rust client (hh) (macos-latest) (push) Waiting to run
CI / rust client (hh) (ubuntu-latest) (push) Waiting to run
CI / rust coverage (push) Waiting to run
CI / python server (3.10) (push) Waiting to run
CI / python server (3.11) (push) Waiting to run
CI / python server (3.12) (push) Waiting to run
CI / headless e2e smoke (push) Waiting to run
CI / dependency audit (push) Waiting to run
CI / secret scanning (push) Waiting to run
CI / rust client (hh) (macos-latest) (push) Waiting to run
CI / rust client (hh) (ubuntu-latest) (push) Waiting to run
CI / rust coverage (push) Waiting to run
CI / python server (3.10) (push) Waiting to run
CI / python server (3.11) (push) Waiting to run
CI / python server (3.12) (push) Waiting to run
CI / headless e2e smoke (push) Waiting to run
CI / dependency audit (push) Waiting to run
CI / secret scanning (push) Waiting to run
Add a BRANCH guard (default: main) so launching the house never demos a stale checkout. ensure_branch() switches to $BRANCH before the cargo build, refuses when the tree is dirty (won't clobber uncommitted work), and no-ops when already on-branch or when BRANCH= is passed to keep the current checkout. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -51,6 +51,7 @@ environment (override any default):
|
|||||||
PORT listen port (default: 4173)
|
PORT listen port (default: 4173)
|
||||||
PW room password (default: random, openssl-generated)
|
PW room password (default: random, openssl-generated)
|
||||||
THEME theme name (church | neon | crypt)
|
THEME theme name (church | neon | crypt)
|
||||||
|
BRANCH git branch to build (default: main; BRANCH= keeps current checkout)
|
||||||
|
|
||||||
notes:
|
notes:
|
||||||
- Two windows in one session: 'server' (host-room.sh — join banner + logs) and
|
- Two windows in one session: 'server' (host-room.sh — join banner + logs) and
|
||||||
@@ -77,6 +78,7 @@ PORT="${PORT:-4173}"
|
|||||||
PW="${PW:-$(openssl rand -hex 12)}"
|
PW="${PW:-$(openssl rand -hex 12)}"
|
||||||
THEMES_DIR="$HERE/themes"
|
THEMES_DIR="$HERE/themes"
|
||||||
THEME="${THEME:-}"
|
THEME="${THEME:-}"
|
||||||
|
BRANCH="${BRANCH-main}" # default: build from main; BRANCH= keeps current checkout
|
||||||
USE_TLS=0; CERT=""; KEY=""
|
USE_TLS=0; CERT=""; KEY=""
|
||||||
DO_KILL=0
|
DO_KILL=0
|
||||||
NAME=""
|
NAME=""
|
||||||
@@ -106,6 +108,23 @@ while [[ $# -gt 0 ]]; do
|
|||||||
done
|
done
|
||||||
NAME="${NAME:-${USER:-$(id -un)}}"
|
NAME="${NAME:-${USER:-$(id -un)}}"
|
||||||
|
|
||||||
|
# Build from a known branch (default: main) so the house never demos a stale
|
||||||
|
# checkout. BRANCH= (empty) keeps whatever's checked out. Won't clobber dirty work.
|
||||||
|
ensure_branch() {
|
||||||
|
[[ -z "$BRANCH" ]] && return 0
|
||||||
|
git -C "$ROOT" rev-parse --git-dir >/dev/null 2>&1 || return 0
|
||||||
|
local cur
|
||||||
|
cur="$(git -C "$ROOT" symbolic-ref --short -q HEAD || echo DETACHED)"
|
||||||
|
[[ "$cur" == "$BRANCH" ]] && return 0
|
||||||
|
if [[ -n "$(git -C "$ROOT" status --porcelain)" ]]; then
|
||||||
|
echo "✖ on '$cur' with uncommitted changes — can't switch to '$BRANCH'." >&2
|
||||||
|
echo " commit/stash first, or run with BRANCH= to build '$cur' as-is." >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
echo "⛧ switching $cur → $BRANCH before build"
|
||||||
|
git -C "$ROOT" switch "$BRANCH" || { echo "✖ couldn't switch to '$BRANCH'" >&2; exit 2; }
|
||||||
|
}
|
||||||
|
|
||||||
# Stop the server on $PORT (the one holding the port), used by --kill and before
|
# Stop the server on $PORT (the one holding the port), used by --kill and before
|
||||||
# we (re)launch so only the room we start answers on this port.
|
# we (re)launch so only the room we start answers on this port.
|
||||||
stop_server() {
|
stop_server() {
|
||||||
@@ -160,8 +179,9 @@ fi
|
|||||||
|
|
||||||
is_up() { curl -s $CURLK --max-time 2 "$SCHEME://$CLIENT_HOST:$PORT/health" 2>/dev/null | grep -q '"status":"ok"'; }
|
is_up() { curl -s $CURLK --max-time 2 "$SCHEME://$CLIENT_HOST:$PORT/health" 2>/dev/null | grep -q '"status":"ok"'; }
|
||||||
|
|
||||||
# 1. build the client so the GUI pane has a binary to run.
|
# 1. build the client so the GUI pane has a binary to run — from $BRANCH (main).
|
||||||
echo "building client…"
|
ensure_branch
|
||||||
|
echo "building client… (branch: ${BRANCH:-current checkout})"
|
||||||
( cd "$HERE" && cargo build --quiet ) || { echo "✖ build failed"; exit 1; }
|
( cd "$HERE" && cargo build --quiet ) || { echo "✖ build failed"; exit 1; }
|
||||||
|
|
||||||
# 2. clear the port so only the room we start answers on it.
|
# 2. clear the port so only the room we start answers on it.
|
||||||
|
|||||||
Reference in New Issue
Block a user