[BUG] `codecov-action` doesn't upload the report from Windows jobs with Cygwin under GHA

Before submitting a topic, please confirm the following

I have searched for similar issues before creating this topic.
I have verified that my repository is using the Codecov GitHub app, if using GitHub
I have validated my codecov.yaml configuration file.
I have filled out the below sections to the best of my ability.
I understand that the community boards are a free, best-effort tool. While we hope to have someone on the Codecov team resolve your problem quickly, this is not always possible.


Despite this happening in an action, it feels like the source of the problem is somewhere in the uploader. It isn’t clear why, though. It says that it failed to find a report file.
I’ve added a debug action, connected via SSH and verified that it’s there. Adding an absolute path via files: doesn’t help either.
I’ve got an impression that the uploader gets lost in the file system and can’t figure out what is the working directory currently.

To Reproduce

Not sure, but maybe this is influenced by the fact that cygwin/cygwin-install-action@v1 was used. See: Use an absolute path for codecov uploads · webknjaz/setuptools@1f428dc · GitHub.


Codecov Output


Expected Results

The coverage report should be found and uploaded.

Actual Results

The action can’t locate the coverage report and doesn’t upload it.

Additional Information

I originally reported this @ `codecov-action` doesn't upload the report from windows jobs with Cygwin · Issue #906 · codecov/uploader · GitHub but that issue was closed and I was asked to post it here. So I’m just copying the info over now. The CI log is now expired so we can’t actually see those original errors.
I seem to recall trying to play with the files: action input to compose an absolute file path but that didn’t help.

Since the action is still integrated into the corresponding GHA job with Cygwin in the setuptools repo (even though it’s not producing any value), I’ve checked the latest GHA logs and found this: Fix typo found by codespell (#4055) · pypa/setuptools@82f5c60 · GitHub.

So the output found there looks as follows:

Run codecov/codecov-action@v3
    files: D:\a\setuptools\setuptools\coverage.xml
    flags: CI-GHA, test_cygwin, OS-Windows, VM-windows-latest, Py-3.9.16
    PY_COLORS: 1
==> windows OS detected
==> SHASUM file signed by key id 806bb28aed779869
==> Uploader SHASUM verified (7d483480c68dbf470d302f58fe35a73207ae0b91ce2e09233c6ab6cd58e2d6f0  codecov.exe)
==> Running version latest
==> Running version v0.6.2
D:\a\_actions\codecov\codecov-action\v3\dist\codecov.exe -n "" -Q github-action-3.1.4 -f D:\a\setuptools\setuptools\coverage.xml -F CI-GHA -F test_cygwin -F OS-Windows -F VM-windows-latest -F Py-3.9.16
[2023-09-25T15:39:31.390Z] ['info'] 
     _____          _
    / ____|        | |
   | |     ___   __| | ___  ___ _____   __
   | |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
   | |___| (_) | (_| |  __/ (_| (_) \ V /
    \_____\___/ \__,_|\___|\___\___/ \_/

  Codecov report uploader 0.6.2
[2023-09-25T15:39:31.435Z] ['info'] => Project root located at: /cygdrive/d/a/setuptools/setuptools
[2023-09-25T15:39:31.437Z] ['info'] -> No token specified or token is empty
[2023-09-25T15:39:31.494Z] ['info'] Searching for coverage files...
[2023-09-25T15:39:31.543Z] ['error'] None of the following appear to exist as files: D:\a\setuptools\setuptools\coverage.xml
[2023-09-25T15:39:31.544Z] ['error'] There was an error running the uploader: Error while cleaning paths. No paths matched existing files!

The action is currently called with files: ${{ github.workspace }}\coverage.xml, but when I was testing this, just files: coverage.xml or even not having that action input set resulted in the same “not found” behavior.

@webknjaz have you confirmed that the coverage report created here actually exists at D:\a\setuptools\setuptools\coverage.xml?

Yes. Although Cygwin exposes the same project path as /cygdrive/d/a/setuptools/setuptools and that’s probably where the confusion happens.

hmmm, and if you do hardcode the path to be /cygdrive/d/a/setuptools/setuptools/coverage.xml? Will that work?