forked from Mike/freno-dev
Records the measured divergence, the decision (Gitea canonical, GitHub mikefreno/freno-dev as the push mirror Vercel builds), why Vercel cannot build from Gitea and why agents cannot write to GitHub, and the one-time operator runbook. scripts/verify-deploy.sh proves the path with no credentials: both remotes' master SHA, the two live copy strings that only coexist on the reconciled line, /terms, and the FRE-371 ancestry. Against today's live site it fails exactly where it should: GitHub master4e412ede!= Giteaa8ce226b, /agents still serves the pre-FRE-997 title, /terms is 404.
88 lines
3.3 KiB
Bash
Executable File
88 lines
3.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Live probe for the freno-dev deploy path (FRE-1695). Read-only; no credentials.
|
|
#
|
|
# Proves, in one run:
|
|
# 1. Gitea master and GitHub master are the same commit (the mirror converged).
|
|
# 2. The live site serves copy that only exists on the reconciled line:
|
|
# NOOK-1038's scoped remote claim (GitHub-only before the merge) *and*
|
|
# FRE-997's "Supported agents" (Gitea-only before the merge). Both at once
|
|
# can only come from the merge commit.
|
|
# 3. The served tree therefore contains FRE-371 (`2fd2a4a`), which is an
|
|
# ancestor of that merge — checked locally when the commit is in the object
|
|
# store, so run this from a freno-dev checkout.
|
|
#
|
|
# Usage: scripts/verify-deploy.sh [expected-gitea-sha]
|
|
|
|
set -uo pipefail
|
|
|
|
GITEA_REMOTE="${GITEA_REMOTE:-https://git.freno.me/Mike/freno-dev.git}"
|
|
GITHUB_REMOTE="${GITHUB_REMOTE:-https://github.com/mikefreno/freno-dev.git}"
|
|
NOOK_HOST="${NOOK_HOST:-https://nook.freno.me}"
|
|
NESSA_HOST="${NESSA_HOST:-https://nessa.freno.me}"
|
|
|
|
fail=0
|
|
ok() { printf 'ok %s\n' "$1"; }
|
|
bad() { printf 'FAIL %s\n' "$1"; fail=1; }
|
|
|
|
echo "== remotes =="
|
|
gitea_sha=$(git ls-remote "$GITEA_REMOTE" refs/heads/master | cut -f1)
|
|
github_sha=$(git ls-remote "$GITHUB_REMOTE" refs/heads/master | cut -f1)
|
|
printf 'gitea master %s\ngithub master %s\n' "${gitea_sha:-<none>}" "${github_sha:-<none>}"
|
|
|
|
[ -n "$gitea_sha" ] && ok "gitea master readable" || bad "gitea master unreadable"
|
|
if [ -n "$gitea_sha" ] && [ "$gitea_sha" = "$github_sha" ]; then
|
|
ok "github master is the same commit (mirror converged)"
|
|
else
|
|
bad "github master differs from gitea master — the mirror has not run"
|
|
fi
|
|
|
|
if [ -n "${1:-}" ]; then
|
|
if [ "$1" = "$gitea_sha" ]; then ok "gitea master is the expected commit $1"
|
|
else bad "gitea master is $gitea_sha, expected $1"; fi
|
|
fi
|
|
|
|
echo
|
|
echo "== live copy =="
|
|
page=$(curl -sS "$NOOK_HOST/" 2>/dev/null)
|
|
case "$page" in
|
|
*"One-click setup for Tailscale and authorized known hosts"*)
|
|
ok "nook landing carries NOOK-1038's scoped remote claim" ;;
|
|
*) bad "nook landing is missing NOOK-1038's scoped remote claim" ;;
|
|
esac
|
|
|
|
agents=$(curl -sS "$NOOK_HOST/agents" 2>/dev/null)
|
|
case "$agents" in
|
|
*"Supported agents"*) ok "nook /agents carries FRE-997's restored coverage title" ;;
|
|
*) bad "nook /agents still serves the pre-FRE-997 title" ;;
|
|
esac
|
|
|
|
terms_code=$(curl -sS -o /tmp/verify-deploy-terms.$$ -w '%{http_code}' "$NESSA_HOST/terms" 2>/dev/null)
|
|
if [ "$terms_code" = "200" ] && grep -q 'nessa-support@freno.me' /tmp/verify-deploy-terms.$$; then
|
|
ok "nessa /terms is published and names the support address (FRE-1670)"
|
|
else
|
|
bad "nessa /terms returned $terms_code without the support address (FRE-1670 undeployed)"
|
|
fi
|
|
rm -f /tmp/verify-deploy-terms.$$
|
|
|
|
echo
|
|
echo "== ancestry =="
|
|
for commit in 2fd2a4a 7fde259; do
|
|
if git cat-file -e "${commit}^{commit}" 2>/dev/null; then
|
|
if git merge-base --is-ancestor "$commit" "$gitea_sha" 2>/dev/null; then
|
|
ok "$commit is an ancestor of gitea master"
|
|
else
|
|
bad "$commit is NOT an ancestor of gitea master"
|
|
fi
|
|
else
|
|
printf 'skip %s not in this clone; run from a freno-dev checkout to check ancestry\n' "$commit"
|
|
fi
|
|
done
|
|
|
|
echo
|
|
if [ "$fail" -eq 0 ]; then
|
|
echo "PASS — the deploy follows gitea master and the served tree contains FRE-371."
|
|
else
|
|
echo "FAIL — see the lines above."
|
|
fi
|
|
exit "$fail"
|