Skip to content

Commit b304ee5

Browse files
committed
ci: improve tessl eval status polling with separate stdout/stderr captur
Agent-Id: agent-9880f236-a0b7-429f-8ca4-2336bf96bef0 Linked-Note-Id: f3d54d02-2e83-4bad-bb72-86e06cc75d07
1 parent a5dafd3 commit b304ee5

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

.github/workflows/tessl-eval.yml

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,9 @@ jobs:
129129
FAIL=0
130130
SUMMARY_FILE=$(mktemp)
131131
ERRORS_FILE=$(mktemp)
132-
trap 'rm -f "$SUMMARY_FILE" "$ERRORS_FILE"' EXIT
132+
STDOUT_TMP=$(mktemp)
133+
STDERR_TMP=$(mktemp)
134+
trap 'rm -f "$SUMMARY_FILE" "$ERRORS_FILE" "$STDOUT_TMP" "$STDERR_TMP"' EXIT
133135
134136
POLL_INTERVAL=30
135137
TIMEOUT=900
@@ -170,8 +172,28 @@ jobs:
170172
sleep "$POLL_INTERVAL"
171173
ELAPSED=$((ELAPSED + POLL_INTERVAL))
172174
173-
STATUS_OUTPUT=$(tessl eval view "$RUN_ID" --json 2>&1) || true
174-
EVAL_STATUS=$(echo "$STATUS_OUTPUT" | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['attributes']['status'])" 2>/dev/null) || EVAL_STATUS="unknown"
175+
# Capture stdout and stderr separately to avoid breaking JSON parsing
176+
VIEW_EXIT=0
177+
tessl eval view "$RUN_ID" --json >"$STDOUT_TMP" 2>"$STDERR_TMP" || VIEW_EXIT=$?
178+
179+
if [ "$VIEW_EXIT" -ne 0 ]; then
180+
STDERR_CONTENT=$(cat "$STDERR_TMP")
181+
echo " [$TILE_NAME] tessl eval view exited $VIEW_EXIT: $STDERR_CONTENT"
182+
if echo "$STDERR_CONTENT" | grep -qi "not found"; then
183+
# Transient: run not yet visible, keep polling
184+
EVAL_STATUS="unknown"
185+
else
186+
# Permanent failure
187+
echo "::warning::tessl eval view failed for $TILE_NAME (exit $VIEW_EXIT): $STDERR_CONTENT"
188+
EVAL_STATUS="failed"
189+
break
190+
fi
191+
else
192+
EVAL_STATUS=$(python3 -c "import sys,json; print(json.load(sys.stdin)['data']['attributes']['status'])" <"$STDOUT_TMP" 2>/dev/null) || {
193+
echo " [$TILE_NAME] Warning: could not parse JSON from stdout"
194+
EVAL_STATUS="unknown"
195+
}
196+
fi
175197
176198
echo " [$TILE_NAME] Poll at ${ELAPSED}s: status=$EVAL_STATUS"
177199

0 commit comments

Comments
 (0)