-
Notifications
You must be signed in to change notification settings - Fork 587
feat: grind test #20093
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
feat: grind test #20093
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ludamad
reviewed
Feb 4, 2026
| ) | ||
| # Check if CI_MODE is in cached_ci_modes | ||
| if [[ " ${cached_ci_modes[@]} " =~ " ${CI_MODE} " ]]; then | ||
| if [[ " ${cached_ci_modes[@]} " =~ " ${CI_MODE} " && "$GITHUB_RUN_ATTEMPT" -eq 1 ]]; then |
Collaborator
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, elegant way to add a knob here
ludamad
approved these changes
Feb 4, 2026
3d53d5b to
617426f
Compare
Adds ability to trigger a test grind from the dashboard by clicking icon next to flaked/failed test. * A given test cmd can be grinded once per 24 hours. * By default it's ground for 10m (todo: Make manually configurable). * Runs are under new `deflake` dashboard. * bb formatter only prints to stdout if it actually has something to format. * Publish failed ci runs to redis for potential future handling. * `run_test_cmd` quite heavily refactored to cleanup many conditionals into config flags, and separate out test run logic into `exec_test` script. * When we run with the Makefile flow (re-enabled on x3 and x4 merge queue runs), we inject MAKEFILE_TARGET into the harness params. This allows targetted rebuilds for grinding (and bisecting, to come later). * Refactor slack notification stuff into `slack_notify` script. * Extend local log expiry to 2 days (from 8 hours). * New `squash_args` script which can help when dealing with feeding complex commands to e.g. `denoise`. Allows passing as separate args e.g. `squash_args denoise my_cmd arg1 "arg2.1 arg2.2"` and translates to `denoise "my_cmd arg1 arg2.1\ arg2.2"`. This is really a stop gap to making scripts like denoise handle multiple args. We made it accept a single quoted arg so we could print it easily, but it creates quote nightmares. * Adds `grind-test` cmd to ci.sh (and bootstrap). * Start the makefile test_engine with setsid. Think I was wrong about using `()&` as that doesn't give a new process group when non-interactive.
8c3465e to
282d903
Compare
Collaborator
Flakey Tests🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds ability to trigger a test grind from the dashboard by clicking icon next to flaked/failed test.
deflakedashboard.run_test_cmdquite heavily refactored to cleanup many conditionals into config flags, and separate out test run logic intoexec_testscript.slack_notifyscript.squash_argsscript which can help when dealing with feeding complex commands to e.g.denoise. Allows passing as separate args e.g.squash_args denoise my_cmd arg1 "arg2.1 arg2.2"and translates todenoise "my_cmd arg1 arg2.1\ arg2.2". This is really a stop gap to making scripts like denoise handle multiple args. We made it accept a single quoted arg so we could print it easily, but it creates quote nightmares.grind-testcmd to ci.sh (and bootstrap).()&as that doesn't give a new process group when non-interactive.