45 lines
1.6 KiB
YAML
45 lines
1.6 KiB
YAML
name: nim-libp2p codecov builds
|
|
|
|
on:
|
|
#On push to common branches, this computes the "bases stats" for PRs
|
|
push:
|
|
branches:
|
|
- master
|
|
- unstable
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
Coverage:
|
|
runs-on: ubuntu-20.04
|
|
env:
|
|
CICOV: YES
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Run
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y lcov build-essential git curl
|
|
mkdir coverage
|
|
curl -O -L -s -S https://raw.githubusercontent.com/status-im/nimbus-build-system/master/scripts/build_nim.sh
|
|
env MAKE="make -j${NPROC}" bash build_nim.sh Nim csources dist/nimble NimBinaries
|
|
export PATH="$PATH:$PWD/Nim/bin"
|
|
nimble install_pinned
|
|
export NIMFLAGS="--lineDir:on --passC:-fprofile-arcs --passC:-ftest-coverage --passL:-fprofile-arcs --passL:-ftest-coverage"
|
|
nimble testnative
|
|
nimble testpubsub
|
|
nimble testfilter
|
|
find nimcache -name *.c -delete
|
|
lcov --capture --directory nimcache --output-file coverage/coverage.info
|
|
shopt -s globstar
|
|
ls `pwd`/libp2p/{*,**/*}.nim
|
|
lcov --extract coverage/coverage.info `pwd`/libp2p/{*,**/*}.nim --output-file coverage/coverage.f.info
|
|
genhtml coverage/coverage.f.info --output-directory coverage/output
|
|
bash <(curl -s https://codecov.io/bash) -f coverage/coverage.f.info || echo "Codecov did not collect coverage reports"
|
|
- uses: actions/upload-artifact@master
|
|
with:
|
|
name: coverage
|
|
path: coverage
|