brew/share/doc/homebrew/Brew-Test-Bot-For-Core-Contributors.md

41 lines
2.4 KiB
Markdown
Raw Normal View History

# Brew Test Bot For Core Contributors
If a build has run and passed on `brew test-bot` then it can be used to quickly bottle formulae.
There are three types of Jenkins jobs:
## Homebrew
This job automatically builds anything committed to the master branch. On
failure it sends an email to `brew-test-bot@googlegroups.com`. It tests rather than builds bottles.
## Homebrew Pull Requests
This job automatically builds any pull requests submitted to Homebrew/homebrew. On
success or failure it updates the pull request status (see more details on the
[main Brew Test Bot wiki page](Brew-Test-Bot)). On a successful build it automatically uploads bottles.
## Homebrew Testing
This job is manually triggered to run
[`brew-test-bot.rb`](https://github.com/Homebrew/homebrew/blob/master/Library/Contributions/cmd/brew-test-bot.rb)
on with user-specified parameters. On a successful build it automatically uploads bottles.
You can manually start this job with parameters to run [`brew-test-bot`](https://github.com/Homebrew/homebrew/blob/master/Library/Contributions/cmd/brew-test-bot.rb) with the same parameters. It's often useful to pass a pull request URL, a commit URL, a commit SHA-1 and/or formula names to have `brew-test-bot` test them, report the results and produce bottles.
## Bottling
To pull and bottle a pull request with `brew pull`:
1. Ensure the job has already completed successfully.
2. Run `brew pull --bottle 12345` where `12345` is the pull request number (or URL). If it complains about a missing URL with `BrewTestBot` in it then the bottles have not finished uploading yet; wait and try again later.
3. Run `brew fetch --force-bottle $FORMULAE` to check the SHA-1 in the bottled formulae match the uploaded files.
4. Run `git push` to push the commits.
To bottle a test build or pull request without `brew pull`:
1. Ensure the job has already completed successfully.
2. For testing builds note the job number (e.g. `123`). For pull request builds note the pull request number (e.g. `45678`).
3. Run `git fetch --tags https://github.com/BrewTestBot/homebrew.git`
4. For testing builds run `git merge testing-123` (where `123` is the testing job number). For pull requests builds run `git merge pr-45678` (where `45678` is the pull request number).
5. Run `git rebase origin/master` to get rid of any nasty merge commits.
6. Run `brew fetch --force-bottle $FORMULAE` to check the SHA-1 in the bottled formulae match the uploaded files.
7. Run `git push` to push the commits.