This repository is a "tap" for Homebrew, a macOS package manager. When you run brew install eosio
or brew upgrade
, brew
will look here to determine where to find the latest macOS binaries for EOSIO.
The homebrew-eosio pipeline runs against the master
branch of this repo to verify that the EOSIO packages we are providing via brew
can be installed and invoked without errors on clean installations of their respective macOS versions. It also verifies the SHA-256 of the bottle matches the tap here, and the version string of the binary matches our CMake.
The eosioBrewAutoPR lambda recieves a webhook (event notification) any time a Buildkite step finishes across the EOSIO organization.
If the following conditions are met by a Buildkite step...
- The job step passed
- The step label includes "brew updater", case-insensitive
- The
BUILDKITE_TAG
environment variable is equivalent to the latest tag on GitHub that matches the pearl-compatible regular expression (PCRE)^v[0-9]+\.[0-9]+\.[0-9]+$
- The regular expression is intended to filter out release candidates (
v2.1.0-rc1
), alphas (v2.1.0-alpha
), betas (v2.1.0-beta
), etc.
- The regular expression is intended to filter out release candidates (
...then the lambda will attempt to:
- Download an artifact from the step called
eosio.rb
- Checkout a new branch
- Update the
eosio.rb
file here in this repo on the feature branch - Open a pull request using the @blockone-devops account, like this
- Request a peer-review on the pull request
Once the pull request is merged to master
, brew
will use the new version indicated by the root_url
field in the eosio.rb
file.
Every once in a while something might go wrong, such as a tagged build being run against the wrong commit or degraded service from one of our service providers. In these cases, this repo will have to be updated manually following the process above.
Simply download the eosio.rb
file from the Brew Updater step in the tagged eosio build, checkout a new branch in this repo, update the eosio.rb
file in the root of this repo, open a pull request like this, obtain peer-review, and get it merged.