> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qlty.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# coverage publish

```bash lines theme={"system"}
qlty coverage publish [OPTIONS] [PATHS]...
```

Upload coverage reports to the Qlty Cloud

The `qlty coverage publish` command uploads code coverage reports to Qlty Cloud for analysis. It supports multiple report formats to ensure compatibility with various programming languages, including `simplecov`, `clover`, `cobertura`, `coverprofile`, `lcov`, `jacoco`, and the generic `qlty` format.

Beyond uploading reports, this command allows the addition or removal of file path prefixes, tagging uploads for easier identification, and overriding the value of certain git-related variables. It integrates code coverage data into Qlty Cloud, offering a comprehensive view of your codebase's coverage.

## Arguments

<AccordionGroup>
  <Accordion title="[PATHS]...">
    One or more paths to the coverage reports to be uploaded
  </Accordion>

  <Accordion title="--dry-run">
    Do not upload the coverage report, only export it to the output directory
  </Accordion>

  <Accordion title="--format <FORMAT>">
    The format of the coverage report to transform. If not specified, the format will be
    inferred from the file extension or contents \[possible values: simplecov, clover, cobertura,
    coverprofile, lcov, jacoco, qlty]
  </Accordion>

  <Accordion title="--tag <TAG>">A tag to associate with this coverage report upload</Accordion>

  <Accordion title="--override-build-id <OVERRIDE_BUILD_ID>">
    Override the build identifier from the CI environment
  </Accordion>

  <Accordion title="--override-branch <OVERRIDE_BRANCH>">
    Override the branch from the CI environment
  </Accordion>

  <Accordion title="--override-commit-sha <OVERRIDE_COMMIT_SHA>">
    Override the commit SHA from the CI environment
  </Accordion>

  <Accordion title="--override-pr-number <OVERRIDE_PR_NUMBER>">
    Override the pull request number from the CI environment
  </Accordion>

  <Accordion title="--override-git-tag <OVERRIDE_GIT_TAG>">
    Override the git tag from the CI environment
  </Accordion>

  <Accordion title="--no-validate">Do not validate coverage data before publishing</Accordion>

  <Accordion title="--add-prefix <ADD_PREFIX>">
    The prefix to add to file paths in coverage payloads, to make them match the project's
    directory structure
  </Accordion>

  <Accordion title="--strip-prefix <STRIP_PREFIX>">
    The prefix to remove from absolute paths in coverage payloads to make them relative to the
    project root. This is usually the directory in which the tests were run. Defaults to the
    root of the git repository
  </Accordion>

  <Accordion title="-t, --token <TOKEN>">
    The token to use for authentication when uploading the report. By default, it retrieves the
    token from the QLTY\_COVERAGE\_TOKEN environment variable
  </Accordion>

  <Accordion title="--project <PROJECT>">
    The name of the project to associate the coverage report with. Only needed when coverage
    token represents a workspace and if it cannot be inferred from the git origin
  </Accordion>

  <Accordion title="--print">Print coverage</Accordion>
  <Accordion title="--verbose">Verbose</Accordion>
  <Accordion title="-q, --quiet">Suppress all output except for errors</Accordion>

  <Accordion title="--total-parts-count <TOTAL_PARTS_COUNT>">
    The total number of parts that qlty cloud should expect. Each call to qlty publish will
    upload one part. (The total parts count is per coverage tag e.g. if you have 2 tags each
    with 3 parts, you should set this to 3)
  </Accordion>
</AccordionGroup>

## Example

Upload a [Cobertura](https://cobertura.github.io/cobertura/) report to Qlty Cloud:

```sh lines theme={"system"}
qlty coverage publish cobertura.xml
```

## See Also

* [`(Qlty Cloud) Setting up Code Coverage`](/coverage/quickstart)
