Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get Github Actions for CodeClimate to support both LCOV and Simplecov at the same time #87

Open
corsonknowles opened this issue Sep 14, 2022 · 0 comments

Comments

@corsonknowles
Copy link
Owner

CodeClimate is a utility that includes features for storing and viewing code coverage reports, as well as a browser extension to overlay code coverage results directly on Github pages in a repo.

CodeClimate uses Simplecov under the hood to support Ruby coverage.
It supports multiple JS coverage tools, in this case we are using LCOV.

We want to configure Codeclimate to upload an lcov Javascript test coverage report and include it alongside the existing covered Ruby report.

Our initial implementation with GitHub actions hits a broken promise error -- even when it finds the lcov file, it doesn't seem to be able to parse it properly.

Related PR: https://github.com/corsonknowles/SoloAsana/pull/71/files

You can see the upload failures here:

https://github.com/corsonknowles/SoloAsana/runs/4845450677?check_suite_focus=true

Excerpt of an example error:

Run paambaati/[email protected]
11
/home/runner/work/SoloAsana/SoloAsana/cc-reporter before-build
12
ℹ️ 'coverageCommand' not set, so skipping building coverage report!
13
/home/runner/work/SoloAsana/SoloAsana/cc-reporter format-coverage /home/runner/work/SoloAsana/SoloAsana/coverage/lcov.info -t lcov -o codeclimate.0.json --debug
14
time="2022-01-17T19:56:41Z" level=debug msg="coverage path /home/runner/work/SoloAsana/SoloAsana/coverage/lcov.info"
15
time="2022-01-17T19:56:41Z" level=debug msg="using formatter lcov"
16
time="2022-01-17T19:56:41Z" level=debug msg="checking search path /home/runner/work/SoloAsana/SoloAsana/coverage/lcov.info for lcov formatter"
17
time="2022-01-17T19:56:41Z" level=debug msg="couldn't load committed at from ENV, trying git..."
18
Error: could not find coverage info for source files
19
(node:3037) UnhandledPromiseRejectionWarning: Error: The process '/home/runner/work/SoloAsana/SoloAsana/cc-reporter' failed with exit code 255
20
Usage:
21
at ExecState._setResult (/home/runner/work/_actions/paambaati/codeclimate-action/v3.0.0/node_modules/@actions/exec/lib/toolrunner.js:592:25)
22
cc-test-reporter format-coverage [coverage file] [flags]
23
at ExecState.CheckComplete (/home/runner/work/_actions/paambaati/codeclimate-action/v3.0.0/node_modules/@actions/exec/lib/toolrunner.js:575:18)
24
at ChildProcess. (/home/runner/work/_actions/paambaati/codeclimate-action/v3.0.0/node_modules/@actions/exec/lib/toolrunner.js:469:27)
25
at ChildProcess.emit (events.js:210:5)
26
at maybeClose (internal/child_process.js:1021:16)
27
at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
28
(node:3037) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
29
(node:3037) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
30

31
Flags:
32
--add-prefix string add this prefix to file paths
33
-t, --input-type string type of input source to use [clover, cobertura, coverage.py, excoveralls, gcov, gocov, jacoco, lcov, lcov-json, simplecov, xccov]
34
-o, --output string output path (default "coverage/codeclimate.json")
35
-p, --prefix string the root directory where the coverage analysis was performed (default "/home/runner/work/SoloAsana/SoloAsana")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant