fix 1.23.6: mon pages only from remote suite tip

Host-agent must fetch/reset to origin/main and refuse if HEAD lags.
Refresh suite-overlay from tip after update; do not re-apply stale overlay
over Forgejo by default (was regenerating mon HTML with old site-gen).
This commit is contained in:
Hernâni Marques 2026-07-22 03:50:22 +02:00
parent f38142cbd3
commit 52db4acace
No known key found for this signature in database
5 changed files with 54 additions and 16 deletions

View file

@ -76,6 +76,9 @@ case "$SUITE_UPDATE_MODE" in
&& ! git reset --hard FETCH_HEAD; then
_upd_die "git reset --hard origin/$SUITE_GIT_REF failed"
fi
# Drop untracked junk that could shadow suite files (never secrets).
git clean -fd -e secrets.env -e 'android-test/artifacts' -e 'android-test/apks' \
-e 'android-test/out*' 2>/dev/null || true
;;
pull)
if ! git pull --ff-only origin "$SUITE_GIT_REF" 2>&1; then
@ -98,6 +101,23 @@ SOURCE_REPO_WEB="${SOURCE_REPO_WEB:-https://git.hacktivism.ch/hernani/taler-moni
COMMIT_URL="${SOURCE_REPO_WEB}/src/commit/${COMMIT}"
export COMMIT COMMIT_SHORT COMMIT_URL SOURCE_REPO_WEB
# Strict tip check (default): mon pages must be generated from remote tip, not a lagging clone.
# SUITE_REQUIRE_REMOTE_TIP=0 only for emergency offline/dev.
: "${SUITE_REQUIRE_REMOTE_TIP:=1}"
if [ "${SUITE_UPDATE_MODE}" != "keep" ] && [ "${SUITE_UPDATE_MODE}" != "skip" ] \
&& [ "${SUITE_UPDATE_MODE}" != "off" ] && [ "${SUITE_UPDATE_MODE}" != "none" ] \
&& [ "${SUITE_REQUIRE_REMOTE_TIP}" = "1" ]; then
_remote=$(git rev-parse "origin/${SUITE_GIT_REF}" 2>/dev/null || git rev-parse FETCH_HEAD 2>/dev/null || true)
if [ -z "$_remote" ]; then
_upd_die "cannot resolve origin/${SUITE_GIT_REF} after fetch — refuse mon-page generate on unknown tip"
elif [ "$COMMIT" != "$_remote" ]; then
_upd_die "suite HEAD ${COMMIT_SHORT} != origin/${SUITE_GIT_REF} $(git rev-parse --short=12 "$_remote" 2>/dev/null) — refuse stale mon pages"
else
echo " remote tip OK: HEAD == origin/${SUITE_GIT_REF} (${COMMIT_SHORT})"
fi
unset _remote
fi
# Release tag for sticky bar (exact tag if HEAD is tagged, else nearest)
SUITE_VERSION=""
if command -v git >/dev/null 2>&1; then