Skip to content

EOSIO/homebrew-eosio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

homebrew-eosio

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.

Automation

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.

...then the lambda will attempt to:

  1. Download an artifact from the step called eosio.rb
  2. Checkout a new branch
  3. Update the eosio.rb file here in this repo on the feature branch
  4. Open a pull request using the @blockone-devops account, like this
  5. 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.

Manual

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.