Shard Detail

coverage-reporter v0.2.17

Self-contained, universal coverage uploader binary. Under development.

Install & Use

Add the following code to your project's shard.yml under:

dependencies to use in production
- OR -
development_dependencies to use in development

  github: coverallsapp/coverage-reporter


⠀⠀⠀⠀⠀⣼⣿⣧⠀⠀⠀⠀⠀⠀⠀ ⣠⣶⣾⣿⡇⢀⣴⣾⣿⣷⣆ ⣿⣿⠀⣰⣿⡟⢸⣿⣿⣿⡇ ⣿⣿⣿⣷⣦⠀⠀⢠⣿⣿⣿⠀⠀⣿⣿⠁⠀⣼⣿⡇⠀⢀⣴⣾⣿⡷
⠶⣶⣶⣶⣾⣿⣿⣿⣷⣶⣶⣶⠶  ⣸⣿⡟ ⠀⢠⣿⣿⠃⠈⣿⣿⠀⣿⣿⢠⣿⡿⠀⣿⣿⣧⣤⠀⢸⣿⡇⣠⣿⡿⠀⢠⣿⡟⣿⣿⠀⢸⣿⡿⠀⠀⣿⣿⠃⠀⢸⣿⣧⣄
⠀⠀⠙⢻⣿⣿⣿⣿⣿⡟⠋⠁⠀⠀ ⣿⣿⡇⠀ ⢸⣿⣿⠀⣸⣿⡟⠀⣿⣿⣾⡿⠁ ⣿⣿⠛⠛⠀⣿⣿⢿⣿⣏⠀⢀⣿⣿⣁⣿⣿⠀⣾⣿⡇⠀⢸⣿⡿⠀⠀⡀⠙⣿⣿⡆
⠀⠀⢠⣿⣿⣿⠿⣿⣿⣿⡄⠀⠀⠀ ⠙⢿⣿⣿⠇⠈⠿⣿⣿⡿⠋⠀⠀⢿⣿⡿⠁⠀⢸⣿⣿⣿⡇⢸⣿⣿⠀⣿⣿⣄⣾⣿⠛⠛⣿⣿⢠⣿⣿⣿ ⣼⣿⣿⣿ ⣿⣿⡿⠋⠀

Coveralls Universal Reporter GitHub Action Coverage Status

Auto-detects your coverage artifact files and CI environment to post to



# You can omit '-C /usr/local/bin' argument to keep it in current directory
curl -L | tar -xz -C /usr/local/bin


brew tap coverallsapp/coveralls
brew install coveralls



curl -L -o coveralls.exe


Invoke-WebRequest -Uri "" -OutFile "coveralls.exe"


See also environment variables list and YAML config that control the utility behavior.


# Automatic lookup for supported reports and sending them to

# Provide explicit repo token
coveralls --repo-token=rg8ZznwNq05g3HDfknodmueeRciuiiPDE

# Use concrete report file
coveralls --file coverage/

# Use parallel reports
coveralls --file project1/coverage/ --parallel
coveralls --file project2/coverage/ --parallel
# ...
coveralls --done

# Provide a job flag and use carry-forwarding
coveralls --job-flag "unit-tests" --parallel
coveralls --job-flag "integration-tests" --parallel
coveralls --done --carryforward "unit-tests,integration-tests"

# Testing options: no real reporting, print payload
coveralls --debug --dry-run
For more options see coveralls -h/--help
$ coveralls -h
Coveralls Coverage Reporter v0.2.11
Usage: coveralls [options]
    -rTOKEN, --repo-token=TOKEN      Sets coveralls repo token, overrides settings in yaml or environment variable
    -cPATH, --config-path=PATH       Set the coveralls yaml config file location, will default to check '.coveralls.yml'
    -bPATH, --base-path=PATH         Path to the root folder of the project the coverage was collected in
    -fFILENAME, --file=FILENAME      Coverage artifact file to be reported, e.g. coverage/ (detected by default)
    -jFLAG, --job-flag=FLAG          Coverage job flag name, e.g. Unit Tests
    -cr=REF, --compare-ref=REF       Git branch name to compare the coverage with
    -cs=SHA, --compare-sha=SHA       Git commit SHA to compare the coverage with
    -p, --parallel                   Set the parallel flag. Requires webhook for completion (coveralls --done)
    -cf, --carryforward              Comma-separated list of parallel job flags
    -d, --done                       Call webhook after all parallel jobs (-p) done
    --service-name=NAME              Build service name override
    --service-job-id=ID              Build job override
    --service-build-url=URL          Build URL override
    --service-branch=NAME            Branch name override
    --service-pull-request=NUMBER    PR number override
    -n, --no-logo                    Do not show Coveralls logo in logs
    -q, --quiet                      Suppress all output
    --debug                          Debug mode: data being sent to Coveralls will be printed to console
    --dry-run                        Dry run (no request sent)
    -v, --version                    Show version
    -h, --help                       Show this help

CI Examples

Built-In Support

Supported Coverage Report Formats

With values used for --format option:

  • Lcov - lcov
  • SimpleCov - simplecov
  • Cobertura - cobertura
  • Jacoco - jacoco
  • Gcov - gcov
  • Golang coverage format - golang
  • Pytest-Cov (:test_tube: beta) - python

You can add a report parser to this project by following these instructions.

Bounty: One or more months of free service at Contact us to learn more.

Pytest-Cov (:test_tube: beta)

Since .coverage stores only covered lines coverage-reporter needs to parse Python code to get uncovered lines. Parsing is done in a pretty naive way, so the results might be different from actual especially for complicated and non-trivial code.

If coverage results are incorrect consider exporting .coverage to XML:

coverage xml # creates coverage.xml
coveralls -f coverage.xml

Supported CI Services

  • CircleCI
  • Github Actions
  • Travis
  • Jenkins
  • GitLab
  • Semaphore
  • Wercker
  • Codeship
  • Drone
  • Buildkite

Docs on environment variables for other CI support.

Extending Support

New CI Services

Supporting your CI service

How to use the Reporter with an officially-unsupported CI service. See instructions.

Adding Support for a New CI Service

See development instructions to add support for a new CI service.

New Coverage Report Formats

Supporting Your Coverage Report Format

If your coverage report format is not one of the ones above (in Supported Coverage Report Formats), you could try finding a library to convert your format into one of the supported formats.

Otherwise, if you want to use the Reporter, you could add support for your coverage report format.

Adding Support for New Coverage Report Formats

See development instructions to add support for a new coverage report format.

Coveralls Enterprise

Set this environment variable to your instance's host:


SSL check will be automatically disabled to allow self-signed certificates.

More info:


To get started you will need crystal installed on your machine and then you can run:

shards install
make # dist/coverals will be created

Run specs:

make test


Cutting new releases.

Auto (prefered)

$ make new_release
New version: 1.2.3
Brief description: new coverage report support

$ git push origin master --follow-tags


  1. Bump version in src/ and shard.yml
  2. Commit with a message git commit --message "X.X.X: <short changes description>"
  3. Create a tag git tag --annotate vX.X.X with the same annotation as commit message
  4. Push with a tag git push origin master --follow-tags

Github release will be created automatically.