Github Actions Coveralls failing to upload multiple coverage files for ruby parallel specs
Nealsoni00 opened this issue · 7 comments
Hey all!
Files that are created:
apps/ruby/api/coverage/lcov-1.info
apps/ruby/api/coverage/lcov-2.info
apps/ruby/api/coverage/lcov-3.info
apps/ruby/api/coverage/lcov-4.info
apps/ruby/api/coverage/lcov-5.info
Github Action Runner Command:
- name: Coveralls GitHub Action
uses: coverallsapp/github-action@v2.1.2
with:
base-path: "apps/ruby/api"
github-token: ${{ secrets.GITHUB_TOKEN }}
debug: true
allow-empty: true
I have tried all base path combinations and even removing it — same error as below
Runner Type: ARM Linux
Error on GitHub action run:
Run coverallsapp/github-action@v2.1.2
with:
base-path: apps/ruby/api
github-token: ***
debug: true
allow-empty: true
coveralls-endpoint: https://coveralls.io
Run mkdir -p ~/bin/
mkdir -p ~/bin/
cd ~/bin/
curl -sLO https://github.com/coverallsapp/coverage-reporter/releases/latest/download/coveralls-linux.tar.gz
curl -sLO https://github.com/coverallsapp/coverage-reporter/releases/latest/download/coveralls-checksums.txt
cat coveralls-checksums.txt | grep coveralls-linux.tar.gz | sha[2](https://github.com/team/actions/runs/5062916311/jobs/9088979319?pr=625#step:8:2)56sum --check
tar -xzf coveralls-linux.tar.gz
rm coveralls-checksums.txt
echo ~/bin >> $GITHUB_PATH
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
coveralls-linux.tar.gz: OK
Run coveralls --debug --allow-empty --base-path apps/ruby/api
coveralls --debug --allow-empty --base-path apps/ruby/api
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
COVERALLS_DEBUG: true
COVERALLS_CARRYFORWARD_FLAGS:
COVERALLS_FLAG_NAME:
COVERALLS_PARALLEL:
COVERALLS_ENDPOINT: https://coveralls.io
COVERALLS_GIT_BRANCH:
COVERALLS_GIT_COMMIT:
COVERALLS_REPO_TOKEN: ***
COVERALLS_COMPARE_REF:
COVERALLS_COMPARE_SHA:
COVERALLS_SOURCE_HEADER: github-action
/runner/_work/_temp/4ea201b2-fb18-482[3](https://github.com/team/actions/runs/5062916311/jobs/9088979319?pr=625#step:8:3)-bc7[5](https://github.com/team/actions/runs/5062916311/jobs/9088979319?pr=625#step:8:5)-e8911a8eb7c0.sh: line 1: /home/runner/bin/coveralls: Input/output error
Error: Process completed with exit code 12[6](https://github.com/team/actions/runs/5062916311/jobs/9088979319?pr=625#step:8:6).
Any help would be greatly appreciated!
Runner Type: ARM Linux
Hey! Unfortunately v2
version of Github action does not support ARM platform yet. I can recommend you switching to v1
or changing the platform to AMD64.
This is related to the issues with cross-compilation of the coverage-reporter, the tool we use to report coverage. We are working on it, but unfortunately I can't say when this issue will be resolved.
Appreciate the response! How do i upload multiple files in a given folder on the v1 of the runner?
I have 5 lcov files but only see v1 documetnation for path-to-lcov
which seems to imply only a single file can be sent?
Right, let me suggest you a way to report multiple files - just report them one by one with parallel: true
option.
- uses: coverallsapp/github-action@v1
with:
path-to-lcov: coverage/file1.cov
flag-name: coverage
parallel: true
- uses: coverallsapp/github-action@v1
with:
path-to-lcov: coverage/file2.cov
flag-name: coverage
parallel: true
- uses: coverallsapp/github-action@v1
with:
path-to-lcov: coverage/file3.cov
flag-name: coverage
parallel: true
- uses: coverallsapp/github-action@v1
with:
parallel-finished: true
Great idea, only issue is that the number of files is determined by the # of CPUs on the machine, if we ever increase the worker, this will break and be hard to determine. Is there any better way of doing this?
Unfortunately, no. It would be much easier with v2
because it joins multiple coverages into one but it is not available on ARM platform right now and won't be available in the nearest future.
Any update on support for ARM for v2? This is v frustrating to not able to parallelize tests (would bring test time from 6 minutes to 2 minutes!)
Unfortunately, ARM support is not the main priority, so we don't spend enough time on this. This seemed tricky when I tried to compile the coverage-reporter on ARM because Crystal has too little options for creating a statically linked binary. Now it compiles well only on x64 and only in their alpine docker image, so I couldn't compile it even on ARM machine.
But we have a long-term task to rewrite coverage-reporter in either Go or Rust to make it available for more platforms and make the distribution simpler. I can't say when it will be done. That's all the context I have on ARM support 😕