amiller / HoneyBadgerBFT

The Honey Badger of BFT Protocols
Other
311 stars 82 forks source link

[tests] set up continuous integration for basic tests #24

Closed sbellem closed 7 years ago

sbellem commented 7 years ago

This issue proposes to set up continuous integration with a free service such as Travis CI such that upon a Pull Request the execution of a suite of tests can be triggered to make sure that existing tested functionalities are not broken.

Other things such as documentation building and code linting can be tested as well.

Scope

Tests that require different data centres spread in different geographical regions will not be considered for this issue for now.

However, performance tests that can be executed fairly easily on a service such as Travis CI will be considered when addressing this issue.

So to summarize, as a minimum the following should be tested as part of the CI phase:

About the possible CI services

The author of this issue is most familiar with Travis CI, and hence it was mentioned as a possible service. There are most probably multiple alternatives, one of which is CircleCI.

A small list of possible services can be maintained here for the time being until a decision is made, assuming that the proposed idea of setting up CI is well received.

List of CI services

sbellem commented 7 years ago

Issue is addressed in branch https://github.com/sbellem/HoneyBadgerBFT/tree/travis-ci

An example can be seen in https://travis-ci.org/sbellem/HoneyBadgerBFT

Code coverage was also added and can be seen here as an example: https://codecov.io/gh/sbellem/honeybadgerbft/branch/travis-ci

Badges, e.g.:

Travis branch Codecov branch

to show the build status and code coverage were also added to the README.md

Before doing a Pull Request:

[![Travis branch](https://img.shields.io/travis/sbellem/HoneyBadgerBFT/travis-ci.svg)](https://travis-ci.org/sbellem/HoneyBadgerBFT)
[![Codecov branch](https://img.shields.io/codecov/c/github/sbellem/honeybadgerbft/travis-ci.svg)](https://codecov.io/github/sbellem/honeybadgerbft?branch=travis-ci)

would become:

[![Travis branch](https://img.shields.io/travis/amiller/HoneyBadgerBFT/master.svg)](https://travis-ci.org/amiller/HoneyBadgerBFT)
[![Codecov branch](https://img.shields.io/codecov/c/github/amiller/honeybadgerbft/master.svg)](https://codecov.io/github/amiller/honeybadgerbft?branch=master)

(assuming master is the reference branch, otherwise it could be replaced with dev).

amiller commented 7 years ago

Thanks, this is great. I've authenticated and granted access with my github @amiller account to both travis-ci and codecov. I'm not sure how else to work on it now other than to take a pullrequest and change it on master until the services play correctly.

sbellem commented 7 years ago

see PR https://github.com/amiller/HoneyBadgerBFT/pull/29

sbellem commented 7 years ago

Closing. Taken care of by #29 and #30.