- Never bother to do `brew cleanup` after `brew install`
- Skip `brew test-bot --only-cleanup-before` in more places it's not
needed
- Move `brew config`/`brew doctor` into the default formula run
(through `brew test-bot --only-setup`)
- Install `buildpulse-test-reporter` rather than letting `brew tests`
do it
- Improve the formatting of the `brew tests` step
- Further shorten the code coverage filenames
- Don't output BuildPulse results upload status unless failed
We warn sometimes when we tell people to build from source and it's
not supported but we don't actually warn non-developers when invoking
the various install commands so: let's start doing so.
While we're here, also update the existing messaging to reflect the fact
we're on Mastodon now too and we don't want maintainers being
individually bothered about errors either.
I've tried to balance having messages here vs. having them be so long
at the beginning of installation that they will be missed or be overly
obnoxious.
- Extract update tests into separate tests.
- Make `brew tests --online` run only once in its own job. This job
could be made non-required to fight flakiness.
- Split up the various macOS runs into several steps now that we have
more parallel macOS workers available.
- Cleanup some flaky tests.
- Provide an error message when the command is unknown.
- Suggest running the command again with `--` if there
is an invalid option which might have been meant for
a subcommand.
- Having `ENV["HOMEBREW_INTEGRATION_TEST"]` as part of the
`command_name` for SimpleCov made the "generated report" wording
_really_ long and unintelligible, since `HOMEBREW_INTEGRATION_TEST`
for some reason is a list of paths, which when we run all of the tests
in parallel, is a lot.
- Because of the way the tests run, this is still _a bit_
noisy, but I've assumed we still want the uniqueness (ish) of the
process IDs. I'll iterate some more to trim this further, if desired.
```
Coverage report generated for Homebrew/brew (), Homebrew/brew (10), Homebrew/brew (11), Homebrew/brew (12), Homebrew/brew (13), Homebrew/brew (14), Homebrew/brew (15), Homebrew/brew (16), Homebrew/brew (2), Homebrew/brew (3), Homebrew/brew (4), Homebrew/brew (5), Homebrew/brew (6), Homebrew/brew (7), Homebrew/brew (8), Homebrew/brew (9), Homebrew/brew integration tests (), Homebrew/brew integration tests (10), Homebrew/brew integration tests (11), Homebrew/brew integration tests (12), Homebrew/brew integration tests (13), Homebrew/brew integration tests (14), Homebrew/brew integration tests (15), Homebrew/brew integration tests (16), Homebrew/brew integration tests (2), Homebrew/brew integration tests (3), Homebrew/brew integration tests (4), Homebrew/brew integration tests (5), Homebrew/brew integration tests (6), Homebrew/brew integration tests (7), Homebrew/brew integration tests (8), Homebrew/brew integration tests (9) to /usr/local/Homebrew/Library/Homebrew/test/coverage. 22236 / 32877 LOC (67.63%) covered.
```
Currently, doing `brew update-reset homebrew/core` does nothing (not
even return an error). If you want to `update-reset` a given tap, you
must do (the equivalent of)
brew update-reset "$(brew --repository owner/tap_name)"
This isn't very intuitive, so let's do a bit more work in argument
parsing so that the user can just pass a tap name instead of a path to a
tap.
Passing a path to a tap is also still supported.