Even if we set the label to force the Linux build for the current formula,
we still want to skip testing reverse dependencies on Linux that are not bottled,
as these will probably fail.
This was working before but the logic change when both test-bot calls
were split a few days ago.
We can revert this change later when we have done all our Linux bottling.
This commit is a fairly giant change to how our CI works. It:
- explains (in the name) the difference between `dispatch-build-bottle`
and `dispatch-rebottle`
- allows a custom build timeout for `dispatch-build-bottle` and
`dispatch-rebottle` (defaulting to an hour) to avoid the CI queue
getting backed up by default
- does some general cleanup of the workflow files
- uses `--skip-dependents` for `dispatch-build-bottle` and
`dispatch-rebottle`; we're not testing new changes in these cases so
there's no sense doing the (sometimes incredibly slow) full dependency
tree checks
- allows specifying whether `dispatch-rebottle` fails fast on the first
matrix build or not. Given that we're almost always wanting to
rebottle all macOS versions in this case: it defaults to true to save
time on pointless builds
- runs `brew test-bot --only-formulae-detect` once in the `tap_syntax`
job and uses these results in the remaining tests. This ensures that
they are consistent, precalculated and more easily visible.
- move all `brew test-bot` label outputs into a single string with
all the arguments to simplify adding more and DRY things up
- add support for new `CI-fail-fast`, `CI-long-timeout` labels to
customise GitHub Actions behaviour and have quicker failures/timeouts
by default to avoid the CI queue backing up
- add support for new `CI-skip-dependents`,
`CI-build-dependents-from-source`, `CI-skip-recursive-dependents`
labels for customising `brew test-bot` behaviour by passing the
respective flags through. This will allow speeding up and slowing down
builds using labels rather than hardcoded values in `brew test-bot`.
- Use separate `brew test-bot --only-dependents` step to fail faster if
one of the original formulae has failed and to separate the output of
dependents and original formulae builds
- autoformat `triage.yml`
- add support for `CI-long-timeout`, `CI-build-dependents-from-source`
and `CI-skip-recursive-dependents` labels into `triage.yml`
We only need these to run for `openssl@1.1` and `python@3.9`, and not
any other version (e.g. `python@3.8`).
The existing code will run `python@3.8` PRs on the self-hosted Linux
runner, and these will end up waiting ages for no good reason if they
come in shortly after a `python@3.9` PR.