Sbt plugin for uploading Scala code coverage to coveralls
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
project
src
.gitignore
.travis.yml
LICENSE
README.md
build.sbt
version.sbt

README.md

sbt-coveralls

Build Status License Join the chat at https://gitter.im/scoverage/sbt-coveralls

SBT plugin that uploads scala code coverage to https://coveralls.io and integrates with Travis CI. This plugin uses scoverage to generate the code coverage metrics.

For an example project that uses this plugin click here. For example output click here

Installation

  1. Add the following to your project/build.sbt file
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1")

addSbtPlugin("org.scoverage" % "sbt-coveralls" % "1.2.5")
  1. Setup coveralls configuration options (such as Specifying Your Repo Token)

  2. Register on https://coveralls.io/

  3. Follow the instructions for either Travis CI or Manual Usage

Travis CI Integration

sbt-coveralls can be run by Travis CI by following these instructions:

  1. Add the following to your travis.yml

    script: "sbt clean coverage test"
    after_success: "sbt coverageReport coveralls"
    

    If you have a multi-module project, perform coverageAggregate as a separate command

    script:
      - sbt clean coverage test coverageReport &&
        sbt coverageAggregate
    after_success:
      - sbt coveralls
    
  2. Job done! Commit these changes to travis.yml to kick off your Travis build and you should see coverage reports appear on https://coveralls.io/

Manual Usage

  1. Get the repo token for your repo from http://coveralls.io

  2. Let sbt-coveralls know what your coveralls repo token is. See Specifying Your Repo Token

  3. In the SBT console, run coverage then your tests finishing with coveralls. After running the command, you should see output similar to the following:

    Uploading to coveralls.io succeeded: Job #17.1
    https://coveralls.io/jobs/12207
    

For example output click here

Specifying Your Repo Token

There are several ways to tell sbt-coveralls your repo token to support different use cases:

Write your repo token into a file

Add the following to your build.sbt. The path can be absolute and point to somewhere outside the project or relative and point somewhere inside the project (such as src/main/resources/token.txt).

Just remember: Do not store repo tokens inside your project if it is in a public git repository!

import org.scoverage.coveralls.Imports.CoverallsKeys._

coverallsTokenFile := "/path/to/my/repo/token.txt"

Put your repo token directly in your build.sbt

Do not store repo tokens inside your project if it is in a public git repository!

import org.scoverage.coveralls.Imports.CoverallsKeys._

coverallsToken := Some("my-token")

Add an environment variable

Add an environment variable COVERALLS_REPO_TOKEN, for example:

export COVERALLS_REPO_TOKEN=my-token

Specifying Your Coveralls Endpoint

If you're using https://coveralls.io as your endpoint, then you don't need to set this option. If you're using a hosted (enterprise) instance of coveralls, you will need to specify your endpoint in one of two ways.

Put your endpoint directly in your build.sbt

import org.scoverage.coveralls.Imports.CoverallsKeys._

coverallsEndpoint := Some("http://my-instance.com")

Add an environment variable

Add an environment variable COVERALLS_ENDPOINT, for example:

export COVERALLS_ENDPOINT=http://my-instance.com

Overriding the current branch

By default sbt-coveralls uses the currently checked-out branch for reporting. To override the branch name add the CI_BRANCH variable, for example:

export CI_BRANCH=my-branch-name

Specifying Source File Encoding

sbt-coveralls finds the encoding in scalacOptions setting value. If not defined it assumes source files are encoded using platform-specific encoding. To specify encoding, add the following to your build.sbt

scalacOptions += Seq("-encoding", "UTF-8")

Using Travis-Pro

It is important to set the correct service_name when using Travis-Pro. The default is to use travis-ci. To override this value, add the following to your build.sbt

import org.scoverage.coveralls.Imports.CoverallsKeys._

coverallsServiceName := Some("travis-pro")

License

sbt-coveralls is open source software released under the Apache 2 License.