Skip to content

0xced/codecov-bash

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Codecov Global Uploader

Upload reports to Codecov for almost every supported language.

Deployed Version


# All CI
bash <(curl -s https://codecov.io/bash)

# Jenkins
curl -s https://codecov.io/bash | bash

# No bash method
curl -s https://codecov.io/bash > .codecov
chmod +x .codecov
./.codecov

Languages

Python, C#/.net, Java, Node/Javascript/Coffee, C/C++, D, Go, Groovy, Kotlin, PHP, R, Scala, Xtern, Xcode, Lua and more...

Usage

Below are most commonly used settings. View full list of commands to see the full list of commands.

# public repo on Travis CI
after_success:
  - bash <(curl -s https://codecov.io/bash)
# private repo
after_success:
  - bash <(curl -s https://codecov.io/bash) -t your-repository-upload-token
# Flag build types
after_success:
  - bash <(curl -s https://codecov.io/bash) -F unittests
# Include environment variables to store per build
after_success:
  - bash <(curl -s https://codecov.io/bash) -e TOX_ENV,CUSTOM_VAR

Prevent build failures

If Codecov fails to upload reports, you can ensure the CI build does not fail by adding a catch-all:

bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"

CI Providers

Company Supported Token Required
Travis CI Yes Build Status Private only
CircleCI Yes Circle CI Private only
Codeship Yes Public & Private
Jenkins Yes Public & Private
Semaphore Yes Public & Private
drone.io Yes Public & Private
AppVeyor No. See Codecov Python. Private only
Wercker Yes Public & Private
Magnum CI Yes Public & Private
Shippable Yes Public & Private
Gitlab CI Yes Public & Private
snap ci Yes Public & Private
git Yes (as a fallback) Public & Private
Buildbot coming soon buildbot/buildbot#1671
Bamboo coming soon
Solano Labs coming soon
Bitrise coming soon

Using Travis CI? Uploader is compatible with sudo: false which can speed up your builds. 👍

Caveats

Jenkins 2 and Pipelines

The branch environment variable is not presented and needs to be included manually :frown:

bash <(curl -s https://codecov.io/bash) -B ${env.BRANCH_NAME}

Failure to do this results in every commit being on the master branch

Strange bash behavior

Bash does not respect multiple spaces with arguments

# FAILS because of double space here:
#                                                      v
- bash <(curl -s https://codecov.io/bash) -X coveragepy  -B master
+ bash <(curl -s https://codecov.io/bash) -X coveragepy -B master

About

Global coverage report uploader for Codecov

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Shell 100.0%