Skip to content

ci: cap build errors in the parser instead of piping into head - #3490

Merged
datlechin merged 1 commit into
mainfrom
ci/xcresult-errors-limit
Oct 17, 2026
Merged

datlechin merged 1 commit into
mainfrom
ci/xcresult-errors-limit

Conversation

@datlechin

Copy link
Copy Markdown
Member

Why

report_build_errors in verify.sh piped xcresult-cases.py errors into head -12. Python ignores SIGPIPE, so a test build with a few hundred errors printed a BrokenPipeError traceback once head closed the pipe. The verdict stayed right, but the output looked like a parser crash. The jq it replaced in #3480 died silently.

Change

  • xcresult-cases.py errors takes --limit <n> and stops after n errors.
  • verify.sh passes --limit 12 and drops the head.

Verified

  • scripts/lib/test_xcresult_cases.py covers the errors output (Broken.swift:4: message), the limit, and a bad limit.
  • verify.sh parse on a stub bundle with 1000 build errors prints 12 and no traceback; on main it prints the traceback.

Not in this PR

  • The oracle suite in scripts/ci/detect-changed-paths.sh still watches summarize-xcresult.sh but not scripts/lib/xcresult-cases.py.

@datlechin
datlechin merged commit 850bd55 into main Oct 17, 2026
7 checks passed
@datlechin
datlechin deleted the ci/xcresult-errors-limit branch October 17, 2026 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant