Skip to content

Support glob/multiple Cobertura files (or action-side merge) in the file input #12

Description

@glen-84

Summary

The file input accepts a single Cobertura XML report. Projects with a test matrix or monorepo layout produce many per-project Cobertura files, so they must be merged into one file before this action can consume them. It would help if the action accepted multiple files / a glob / a directory and merged them itself.

Current behavior

  • file is a single, required path to one Cobertura XML report.
  • There is no glob, multi-file, or directory input.

Desired behavior

Accept any one of:

  • glob patterns in file (e.g. **/*.cobertura.xml), or
  • a files input taking a newline- or comma-separated list, or
  • a directory + pattern,

and merge the matched reports (action-side or server-side) before upload. For comparison, codecov/codecov-action accepts multiple files / directory search, so matrix and monorepo setups upload without a separate merge step.

Use case

We're migrating a public .NET OSS monorepo (ChilliCream/graphql-platform) from Codecov to GitHub Code Quality. CI runs a 125-project test matrix, and each job emits its own *.cobertura.xml artifact. Codecov merged them server-side. With this action we now add an explicit merge step first:

- run: dotnet tool install --global dotnet-coverage
- run: >
    dotnet-coverage merge
    --output merged.cobertura.xml
    --output-format cobertura
    "**/*.cobertura.xml"
- uses: actions/upload-code-coverage@v1
  with:
    file: merged.cobertura.xml
    language: "C#"
    label: code-coverage/dotnet

This works, but native multi-file/glob support (or an action-side merge) would remove the extra tooling and step for the common matrix/monorepo case.

Question

If multiple uploads with distinct labels are made (e.g. one per matrix job), are they aggregated into a single PR coverage total, or treated independently? If aggregation already works that way, documenting it would cover much of this need on its own.

Drafted by Claude (Anthropic AI assistant).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions