/uberalls

Track code coverage metrics with Jenkins and Phabricator

Primary LanguageGoMIT LicenseMIT

uberalls Build Status Coverage Status

Code coverage metric storage service. Provide coverage metrics on differentials with Phabricator and Jenkins, just like Coveralls does for GitHub and TravisCI.

Running

Configure your database by editing config/default.json or specify a different file by passing an UBERALLS_CONFIG environment variable. The development and test runs use a SQLite database.

If you'd like to use MySQL, you could use the following configuration:

{
  "dbType": "mysql",
  "dbLocation": "user:password@/dbname?charset=utf8",
  "listenPort": 8080,
  "listenAddress": "0.0.0.0"
}

Jenkins integration

Uberalls works best when paired with our Phabricator Jenkins Plugin, which will record Cobertura data on master runs, and compare coverage to the base revision on differentials.

Jenkins Integration

On differentials, the delta in coverage is calculated by taking the base commit (from conduit metadata) and comparing that to the current coverage amount.

In order to have a baseline to compare against, you must also have jenkins build your project on your mainline branch ("master" by default). You can either create a separate job, or enable SCM polling under Build Triggers:

scm polling

Development

Get the source

go get github.com/uber/uberalls

Install Glide and dependencies

cd $GOPATH/src/github.com/uber/uberalls
go get github.com/Masterminds/glide
glide install

Run the thing

go build && ./uberalls

Run the tests

go test .

License

MIT Licensed