Fork of codecovcodecov-action

Clone this repo:

Branches

  1. 5b42a30 Merge pull request #179 from codecov/dependabot/npm_and_yarn/typescript-4.1.3 by Tom Hu · 5 weeks ago master
  2. 29c457e Merge pull request #187 from codecov/dependabot/npm_and_yarn/node-notifier-8.0.1 by Tom Hu · 5 weeks ago
  3. b3ee0b0 [Security] Bump node-notifier from 8.0.0 to 8.0.1 by dependabot-preview[bot] · 5 weeks ago
  4. 133f89a Merge pull request #185 from codecov/makefile by Tom Hu · 5 weeks ago
  5. a03d57c Actually have a makefile by Tom Hu · 5 weeks ago

Codecov GitHub Action

GitHub Marketplace FOSSA Status

Easily upload coverage reports to Codecov from GitHub Actions

The latest release of this Action adds support for tokenless uploads from GitHub Actions!

Usage

To integrate Codecov with your Actions pipeline, specify the name of this repository with a tag number (@v1 is recommended) as a step within your workflow.yml file.

If you have a private repository, this Action also requires you to provide an upload token from codecov.io (tip: in order to avoid exposing your token, store it as a secret). Optionally, you can choose to include up to four additional inputs to customize the upload context. For public repositories, no token is needed

Inside your .github/workflows/workflow.yml file:

steps:
- uses: actions/checkout@master
- uses: codecov/codecov-action@v1
  with:
    token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos
    file: ./coverage.xml # optional
    files: ./coverage1.xml,./coverage2.xml # optional
    flags: unittests # optional
    name: codecov-umbrella # optional
    fail_ci_if_error: true # optional (default = false)
    verbose: true # optional (default = false)

Note: This assumes that you've set your Codecov token inside Settings > Secrets as CODECOV_TOKEN. If not, you can get an upload token for your specific repo on codecov.io. Keep in mind that secrets are not available to forks of repositories.

Arguments

Codecov's Action currently supports five inputs from the user: token, file, flags,name, and fail_ci_if_error. These inputs, along with their descriptions and usage contexts, are listed in the table below:

InputDescriptionUsage
tokenUsed to authorize coverage report uploadsRequired for private repos
filePath to the coverage report(s)Optional
filesComma-separated paths to the coverage report(s)Optional
directoryDirectory to search for coverage reports.Optional
flagsFlag the upload to group coverage metrics (unittests, uitests, etc.). Multiple flags are separated by a comma (ui,chrome)Optional
env_varsEnvironment variables to tag the upload with. Multiple env variables can be separated with commas (e.g. OS,PYTHON)Optional
nameCustom defined name for the uploadOptional
fail_ci_if_errorSpecify if CI pipeline should fail when Codecov runs into errors during upload. Defaults to falseOptional
path_to_write_reportWrite upload file to path before uploadingOptional
verboseSpecify whether the Codecov output should be verboseOptional
working-directoryDirectory in which to execute codecov.shOptional
xcode_derived_dataCustom Derived Data Path for Coverage.profdata and gcov processingOptional
xcode_packageSpecify packages to build coverage. Uploader will only build these packages. This can significantly reduces time to build coverage reports. -J ‘MyAppName’ Will match “MyAppName” and “MyAppNameTests” -J ‘^ExampleApp$’ Will match only “ExampleApp” not “ExampleAppTests”Optional

Example workflow.yml with Codecov Action

name: Example workflow for Codecov
on: [push]
jobs:
  run:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    env:
      OS: ${{ matrix.os }}
      PYTHON: '3.7'
    steps:
    - uses: actions/checkout@master
    - name: Setup Python
      uses: actions/setup-python@master
      with:
        python-version: 3.7
    - name: Generate coverage report
      run: |
        pip install pytest
        pip install pytest-cov
        pytest --cov=./ --cov-report=xml
    - name: Upload coverage to Codecov
      uses: codecov/codecov-action@v1
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        file: ./coverage.xml
        files: ./coverage1.xml,./coverage2.xml
        directory: ./coverage/reports/
        flags: unittests
        env_vars: OS,PYTHON
        name: codecov-umbrella
        fail_ci_if_error: true
        path_to_write_report: ./coverage/codecov_report.txt
        verbose: true

Contributing

Contributions are welcome! Check out the Contribution Guide.

License

The code in this project is released under the MIT License.

FOSSA Status