No commit activity in last 3 years
No release in over 3 years
Report CircleCI test coverage and static analysis results to your GitHub repository
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

 Project Readme

CircleCIReporter

This is a maitained fork of CircleCI::CoverageReporter

CircleCIReporter reports test coverage to your GitHub repository.

Getting started

  1. Add CircleCIReporter to your Gemfile and bundle install:

    gem 'circleci_reporter', group: :test
  2. Load circleci_reporter/rake_task in your Rakefile:

    require 'circleci_reporter/rake_task' if ENV['CIRCLECI']
  3. Issue CircleCI and GitHub tokens and add them to build environment variables as follows:

    Name Value
    CIRCLECI_REPORTER_CIRCLECI_TOKEN CircleCI API token with "view-builds" scope
    CIRCLECI_REPORTER_VCS_TOKEN GitHub personal access token with "repo" or "public_repo" scope
  4. Add the following step to your circle.yml:

    test:
      post:
      - bundle exec rake circleci_reporter:coverage

Run manually

You must configure circleci_token and vcr_token before CircleCIReporter.run:

CircleCIReporter.configure do |config|
  config.circleci_token = YOUR_CIRCLECI_API_TOKEN
  config.vcr_token = YOUR_GITHUB_PERSONAL_ACCESS_TOKEN
end

CircleCIReporter.run

Reporters

SimpleCov

CircleCIReporter::Reporters::SimpleCovReporter handles coverage files generated by SimpleCov.

It expects that coverage files are located in $CIRCLE_ARTIFACTS/coverage directory:

# spec/spec_helper.rb
require 'simplecov'
# Save to CircleCI's artifacts directory if we're on CircleCI
SimpleCov.coverage_dir(File.join(ENV['CIRCLE_ARTIFACTS'], 'coverage')) if ENV['CIRCLECI']
SimpleCov.start

If you put files in another directory, say $CIRCLE_ARTIFACTS/foo/bar, you have to set reporter as follows:

CircleCIReporter.configure do |config|
  config.reporters << CircleCIReporter::Reporters::SimpleCov.new(dir: 'foo/bar')
end

Flow

CircleCIReporter::Reporters::FlowReporter handles coverage files generated by flow-coverage-report

It expects that there is $CIRCLE_ARTIFACTS/flow-coverage/flow-coverage.json:

$(npm bin)/flow-coverage-report -t json -o $CIRCLE_ARTIFACTS/flow-coverage

If you put the file in another path, say $CIRCLE_ARTIFACTS/foo/bar/flow-coverage.json, you have to set reporter as follows:

CircleCIReporter.configure do |config|
  config.reporters << CircleCIReporter::Reporters::Flow.new(dir: 'foo/bar')
end

RubyCritic

CircleCIReporter::Reporters::RubyCritic handles code quality files generated by rubycritic

bundle exec rubycritic -p $CIRCLE_ARTIFACTS/rubycritic -f json --no-browser --mode-ci app
bundle exec rubycritic -p $CIRCLE_ARTIFACTS/rubycritic -f html --no-browser --mode-ci app

Link

CircleCIReporter::Reporters::Link reports a link to an artifact file.

CircleCIReporter.configure do |config|
  config.reporters << CircleCI::CoverateReporter::Reporters::Link.new(path: 'path/to/file', name: 'NAME')
end

License

The gem is available as open source under the terms of the MIT License.