test_bot fixes for portable formulae#23068
Conversation
This provides a clean directory to test bottling so that previously built bottles don't cause "Unexpected bottle" errors
This avoids trying to rebuild portable formulae again within the nested test-bot run which may the cause of stalled runs
There was a problem hiding this comment.
Pull request overview
This PR adjusts Homebrew’s test_bot behavior around portable formulae to reduce flaky/stalled CI runs: it runs a nested brew test-bot in a clean temporary working directory to avoid “Unexpected bottle” artifacts, and it prevents portable formulae from being selected when running --test-default-formula.
Changes:
- Run the nested
brew test-bot --test-default-formulainside anMktempdirectory to isolate bottle artifacts. - When
--test-default-formulais used, filter outportable-*formulae from the detected added/modified sets to avoid rebuilding them in that run.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| Library/Homebrew/test_bot/formulae.rb | Wrap nested brew test-bot invocation in Mktemp to run in a clean temporary directory. |
| Library/Homebrew/test_bot/formulae_detect.rb | Exclude portable-* formulae from detection when --test-default-formula is enabled. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Isn't this a bug in how we track bottles that we expect to be there? We should fix that instead. |
I think it is behaving as expected since we want 0 bottles to exist at beginning of a test-bot run to guarantee a clean environment. The test is for verifying we can build brew/.github/workflows/tests.yml Lines 410 to 414 in 0eb3803 EDIT: could trigger the same |
brewcommands to reproduce the bug?brew lgtm(style, typechecking and tests) locally?test_bot/formulae: run nested test-bot in temporary dir
This provides a clean directory to test bottling so that previously built bottles don't cause "Unexpected bottle" errors
https://github.com/Homebrew/homebrew-core/actions/runs/29179553748/job/86656464924#step:4:1833
Mktemp#runshould be similar toDir.mktmpdir { Dir.chdir { ... } }. Could use latter if preferred (need to change directory so thatPathname.pwdruns in clean directory).test_bot/formulae_detect: exclude portable when testing default
This avoids trying to rebuild portable formulae again within the nested test-bot run which may the cause of stalled runs