fix(install-e2e): installer_supports lied under pipefail - buffer the probe

git show | grep -qF exits at grep's first match; install.sh is ~140KB
with the flag strings in the first few KB, so git show takes SIGPIPE
on its next write and the pipeline reports 141 under set -o pipefail.
The probe answered NO for flags the ref HAS - timing-dependent, green
without pipefail (every local check), red on the runner.

It hid while a probe miss just meant omitting --skip-browser; the
first probe where NO is a hard failure (--include-desktop) exposed it
on its first CI leg. Buffer git show into a variable and grep the
string: git always completes, grep judges bytes.
This commit is contained in:
ethernet
2026-08-12 04:23:43 -04:00
parent 0f903e14a3
commit 11f00b823c

View File

@@ -155,8 +155,15 @@ INSTALL_DIR="$HERMES_HOME/hermes-agent"
# install.sh rather than assuming this checkout's flag set: the point of the
# matrix is to install releases from months back, whose installers predate
# options we take for granted.
#
# Buffered through a variable, NOT `git show | grep -q`: under pipefail,
# grep -q exits at the first match (install.sh is ~140KB, the flags appear
# in the first few KB), git show takes SIGPIPE on its next write, and the
# pipeline reports 141 -- the probe answers NO for a flag the ref HAS.
installer_supports() {
git -C "$REPO_ROOT" show "$1:scripts/install.sh" | grep -qF -- "$2"
local text
text="$(git -C "$REPO_ROOT" show "$1:scripts/install.sh")"
grep -qF -- "$2" <<< "$text"
}
run_installer() {