Skip to content

Brew Test Bot For Core Contributors

Mike McQuaid edited this page Feb 26, 2014 · 6 revisions

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 [email protected]. 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). On a successful build it automatically uploads bottles.

Homebrew Testing

This job is manually triggered to run 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 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.
Clone this wiki locally