hpc-codecov alternatives and similar packages
Based on the "Data" category.
Alternatively, view hpc-codecov alternatives based on common mentions on social networks and blogs.
-
compendium-client
DISCONTINUED. Mu (μ) is a purely functional framework for building micro services. -
streaming
An optimized general monad transformer for streaming applications, with a simple prelude of functions -
text-icu
This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text.
SaaSHub - Software Alternatives and Reviews
Do you think we are missing an alternative of hpc-codecov or a related project?
README
hpc-codecov
The hpc-codecov
package contains an executable and library codes
for generating Codecov JSON coverage report from
.tix
and .mix
files made with
hpc.
The hpc-codecov
executable does not try to find out the location
of .tix
and mix
files. Instead, let the user to explicitly
specify the file paths and directories. The rational behind the
decision is to support multiple versions of multiple build tools, such
as cabal-install
legacy v1-style build, v2-style build, and
stack.
Examples
Following shows two examples for generating test coverage report of
the hpc-codecov
package itself, one with cabal-install
Nix-style local build commands, and another with stack
.
With cabal-install
First, run the tests with coverage option to generate .tix
and
mix
files:
$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
$ cabal v2-configure --enable-test --enable-coverage
$ cabal v2-test
Then generate a Codecov JSON coverage data from the .tix
and
.mix
files:
$ proj=hpc-codecov-0.1.0.0
$ tix=$(find ./dist-newstyle -name $proj.tix)
$ mix=$(find ./dist-newstyle -name vanilla -print -quit)/mix/$proj
$ hpc-codecov --mix=$mix --exclude=Paths_hpc_codecov --out=codecov.json $tix
The --out
option specifies the output file to write the JSON
report. Observing the contents of codecov.json
with
jq
:
$ jq . codecov.json | head -10
{
"coverage": {
"src/Trace/Hpc/Codecov/Error.hs": {
"27": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"51": 0,
Send the resulting JSON report file to Codecov with the bash
uploader. The file name
codecov.json
is listed in the uploader script as one of the file
name patterns to upload, no need to specify the report filename
explicitly:
$ bash <(curl -s https://codecov.io/bash)
According to the Codecov FAQ, the uploader should work from Travis, CircleCI, and AppVeyor for public projects without Codecov token.
With stack
Build the package and run the tests with coverage option:
$ stack --numeric-version
2.3.3
$ stack build --test --coverage
As done in cabal-install
example, specify the path of .tix
and
.mix
files. Using path
sub-command to get the local hpc root
directory and dist directory:
$ hpcroot=$(stack path --local-hpc-root)
$ tix=$(find $hpcroot -name 'test-main.tix')
$ mix=$(stack path --dist-dir)/hpc
$ hpc-codecov --mix=$mix --exclude=Paths_hpc_codecov -o codecov.json $tix
Then send the resulting report file:
$ bash <(curl -s https://codecov.io/bash)