From 03c780fca8bb374d852172ff79d6427c7b2fa078 Mon Sep 17 00:00:00 2001 From: samuelburnham <45365069+samuelburnham@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:55:59 -0400 Subject: [PATCH] fix(bencher-track): Read the whole multi-line thresholds input The `thresholds` input spans several lines, one per measure. Replacing the unquoted array expansion with `read -a` kept only the first line, so every measure after the first lost its flags and the first lost its boundaries; bencher rejected the model with "no boundary provided" and Benchmark main failed at the tracking step. `read -d ''` consumes the input to its end and still splits on all whitespace, reproducing the original token list without globbing. It reports end of input as a failure, hence the trailing `|| true`. --- .github/actions/bencher-track/action.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/actions/bencher-track/action.yml b/.github/actions/bencher-track/action.yml index 45be01838..4d645f6e5 100644 --- a/.github/actions/bencher-track/action.yml +++ b/.github/actions/bencher-track/action.yml @@ -72,8 +72,11 @@ runs: # No data points since the reset → omit thresholds so the reset commit # lands without an alert (--thresholds-reset clears stale models); they # re-arm next run. Otherwise substitute the window into each measure. + # The input spans several lines, so read to end of input (`-d ''`) + # rather than to the first newline; `read` then reports end of input + # as a failure, hence `|| true`. thresholds=() - [ "$sample" -gt 0 ] && read -r -a thresholds <<< "${THRESHOLDS//__WINDOW__/$sample}" + [ "$sample" -gt 0 ] && read -r -d '' -a thresholds <<< "${THRESHOLDS//__WINDOW__/$sample}" || true bencher run \ --project ix \