Coder Social home page Coder Social logo

goveralls's Introduction

goveralls

Go integration for Coveralls.io continuous code coverage tracking system.

Installation

goveralls requires a working Go installation (Go-1.13 or higher).

$ go install github.com/mattn/goveralls@latest

Usage

First you will need an API token. It is found at the bottom of your repository's page when you are logged in to Coveralls.io. Each repo has its own token.

$ cd $GOPATH/src/github.com/yourusername/yourpackage
$ goveralls -repotoken your_repos_coveralls_token

You can set the environment variable $COVERALLS_TOKEN to your token so you do not have to specify it at each invocation.

You can also run this reporter for multiple passes with the flag -parallel or by setting the environment variable COVERALLS_PARALLEL=true (see coveralls docs for more details).

Continuous Integration

There is no need to run go test separately, as goveralls runs the entire test suite.

GitHub Actions

shogo82148/actions-goveralls is available on GitHub Marketplace. It provides the shorthand of the GitHub Actions YAML configure.

name: Quality
on: [push, pull_request]
jobs:
  test:
    name: Test with Coverage
    runs-on: ubuntu-latest
    steps:
    - name: Set up Go
      uses: actions/setup-go@v2
      with:
        go-version: '1.16'
    - name: Check out code
      uses: actions/checkout@v2
    - name: Install dependencies
      run: |
        go mod download
    - name: Run Unit tests
      run: |
        go test -race -covermode atomic -coverprofile=covprofile ./...
    - name: Install goveralls
      run: go install github.com/mattn/goveralls@latest
    - name: Send coverage
      env:
        COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: goveralls -coverprofile=covprofile -service=github
    # or use shogo82148/actions-goveralls
    # - name: Send coverage
    #   uses: shogo82148/actions-goveralls@v1
    #   with:
    #     path-to-profile: covprofile

Travis CI

GitHub Integration

Enable Travis-CI on your GitHub repository settings.

For a public GitHub repository put bellow's .travis.yml.

language: go
go:
  - tip
before_install:
  - go install github.com/mattn/goveralls@latest
script:
  - $GOPATH/bin/goveralls -service=travis-ci

For a public GitHub repository, it is not necessary to define your repository key (COVERALLS_TOKEN).

For a private GitHub repository put bellow's .travis.yml. If you use travis pro, you need to specify -service=travis-pro instead of -service=travis-ci.

language: go
go:
  - tip
before_install:
  - go install github.com/mattn/goveralls@latest
script:
  - $GOPATH/bin/goveralls -service=travis-pro

Store your Coveralls API token in Environment variables.

COVERALLS_TOKEN = your_token_goes_here

or you can store token using travis encryption keys. Note that this is the token provided in the page for that specific repository on Coveralls. This is not one that was created from the "Personal API Tokens" area under your Coveralls account settings.

$ gem install travis
$ travis encrypt COVERALLS_TOKEN=your_token_goes_here --add env.global

travis will add env block as following example:

env:
  global:
    secure: xxxxxxxxxxxxx

For others:

$ go install github.com/mattn/goveralls@latest
$ go test -covermode=count -coverprofile=profile.cov
$ goveralls -coverprofile=profile.cov -service=travis-ci

Drone.io

Store your Coveralls API token in Environment Variables:

COVERALLS_TOKEN=your_token_goes_here

Replace the go test line in your Commands with these lines:

$ go install github.com/mattn/goveralls@latest
$ goveralls -service drone.io

goveralls automatically use the environment variable COVERALLS_TOKEN as the default value for -repotoken.

You can use the -v flag to see verbose output from the test suite:

$ goveralls -v -service drone.io

CircleCI

Store your Coveralls API token as an Environment Variable.

In your circle.yml add the following commands under the test section.

test:
  pre:
    - go install github.com/mattn/goveralls@latest
  override:
    - go test -v -cover -race -coverprofile=/home/ubuntu/coverage.out
  post:
    - /home/ubuntu/.go_workspace/bin/goveralls -coverprofile=/home/ubuntu/coverage.out -service=circle-ci -repotoken=$COVERALLS_TOKEN

For more information, See https://docs.coveralls.io/go

Semaphore

Store your Coveralls API token in Environment Variables:

COVERALLS_TOKEN=your_token_goes_here

More instructions on how to do this can be found in the Semaphore documentation.

Replace the go test line in your Commands with these lines:

$ go install github.com/mattn/goveralls@latest
$ goveralls -service semaphore

goveralls automatically use the environment variable COVERALLS_TOKEN as the default value for -repotoken.

You can use the -v flag to see verbose output from the test suite:

$ goveralls -v -service semaphore

Jenkins CI

Add your Coveralls API token as a credential in Jenkins (see Jenkins documentation).

Then declare it as the environment variable COVERALLS_TOKEN:

pipeline {
    agent any
    stages {
        stage('Test with coverage') {
            steps {
                sh 'go test ./... -coverprofile=coverage.txt -covermode=atomic'
            }
        }
        stage('Upload to coveralls.io') {
            environment {
                COVERALLS_TOKEN     = credentials('coveralls-token')
            }
            steps {
                sh 'goveralls -coverprofile=coverage.txt'
            }
        }
    }
}

See also related Jenkins documentation.

It is also possible to let goveralls run the code coverage on its own without providing a coverage profile file.

TeamCity

Store your Coveralls API token in Environment Variables:

COVERALLS_TOKEN=your_token_goes_here

Setup build steps:

$ go install github.com/mattn/goveralls@latest
$ export PULL_REQUEST_NUMBER=%teamcity.build.branch%
$ goveralls -service teamcity -jobid %teamcity.build.id% -jobnumber %build.number%

goveralls will automatically use the environment variable COVERALLS_TOKEN as the default value for -repotoken.

You can use the -v flag to see verbose output.

Gitlab CI

Store your Coveralls API token as an Environment Variable named COVERALLS_TOKEN.

test:
  timeout: 30m
  stage: test
  artifacts:
    paths:
      - coverage.txt
  dependencies:
    - build:env
  when: always
  script:
    - go test -covermode atomic -coverprofile=coverage.txt ./...
    - go install github.com/mattn/goveralls@latest
    - goveralls -service=gitlab -coverprofile=coverage.txt

Coveralls Enterprise

If you are using Coveralls Enterprise and have a self-signed certificate, you need to skip certificate verification:

$ goveralls -insecure

Authors

  • Yasuhiro Matsumoto (a.k.a. mattn)
  • haya14busa

License

under the MIT License: http://mattn.mit-license.org/2016

goveralls's People

Contributors

agamm avatar albertito avatar aleksi avatar berfarah avatar d4l3k avatar dustin avatar eaburns avatar ericelsken avatar fezho avatar fsouza avatar gdm85 avatar h12w avatar haya14busa avatar jbenden avatar jderusse avatar jmcvetta avatar kylecarbs avatar maruel avatar mattn avatar microsoftly avatar msoap avatar nbaztec avatar powerman avatar prateek avatar renovate-bot avatar romanyx avatar sbward avatar seandolphin avatar shogo82148 avatar zimmski avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.