uberalls
![Coverage Status](https://coveralls.io/repos/uber/uberalls/badge.svg)
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](https://github.com/uber/uberalls/raw/0ed7abfad746/docs/jenkins-integration.png)
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](https://github.com/uber/uberalls/raw/0ed7abfad746/docs/scm-polling.png)
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