File tree Expand file tree Collapse file tree 1 file changed +25
-3
lines changed
Expand file tree Collapse file tree 1 file changed +25
-3
lines changed Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments