2 releases

0.1.5 May 5, 2024
0.1.4 May 4, 2024
0.1.2 Nov 30, 2021

#138 in Profiling

LGPL-3.0

69KB
1.5K SLoC

coveralls

Send job to Coveralls (coveralls.io) from a rust program.

This command will help to send to coveralls.io a coverage file in the format of Coveralls.

That can be used in local computer, but this is made to be used with CI/CD environments like Travis, Circle-CI, Jenkins, or others.

Install

For installing, you can use Cargo by invoking:

cargo install coveralls

That's weird coveralls-python exists, so why another API client ?

The main reason is that coveralls-python can only send in lcov format. But anymore, i saw that the format produced by grcov don't remove all dependencies.

Indeed, i used Lalrpop in one of my project, and the generated file was included in the report produced by grcov.* Here, we focus on Rust project and we remove all dependencies, on demand with a commend line argument. We offer the possibility of including dependencies or to filter them, filter all or with an expression (a regex).

For this moment, we use only Coveralls format as input, but later we could use another formats.

Configuration

As said, we accept only the Coveralls format, but other format is int the Todo list.

For parameters, we use environment variables for several CI environments:

  • AppVeyor
  • BuildKite
  • Circle-CI
  • Github Actions
  • Jenkins
  • Semaphore
  • Travis

Command line parameters override configuration fetched from environment.

Command line argument -h gives a help on configuration.

Todo list

  • Input formats
    • Coveralls
    • Lcov
  • Add other entry points of the Coveralls API
  • Add comments in code (with docs)

Dependencies

~10–24MB
~386K SLoC