- 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
- 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.
- 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.
```
- make OS detection looser to exclude more Linux files on macOS (and
vice versa)
- Allow slight (0.5%) coverage drops to account for somewhat random
fluctuations.
Previously, .simplecov called `SimpleCov.result` to store the coverage
result, and ignored the return value. `SimpleCov.result`'s return can be
slow to calculate, which wastes a lot of time when it's ignored.
This commit extracts the code needed to store the SimpleCov result from
`SimpleCov.result`, and calls it directly, without doing the busywork to
compute the return value every time.
In my testing, this more than halves the time taken to run all the
integration tests.