Skip to content

Reports CircleCI test coverage and static analysis results to your GitHub repository.

License

Notifications You must be signed in to change notification settings

filippoliverani/circleci-reporter

 
 

Repository files navigation

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.

About

Reports CircleCI test coverage and static analysis results to your GitHub repository.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 99.7%
  • Shell 0.3%