parent
8c2eca18dc
commit
afbb1b4d3c
|
@ -5,24 +5,15 @@ on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
- unstable
|
||||||
pull_request:
|
pull_request:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
GossipSub:
|
Coverage:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
strategy:
|
env:
|
||||||
matrix:
|
CICOV: YES
|
||||||
nim-options: [
|
|
||||||
"",
|
|
||||||
"-d:libp2p_pubsub_anonymize=true -d:libp2p_pubsub_sign=false -d:libp2p_pubsub_verify=false",
|
|
||||||
"-d:libp2p_pubsub_sign=true -d:libp2p_pubsub_verify=true"
|
|
||||||
]
|
|
||||||
test-program: [
|
|
||||||
"tests/pubsub/testpubsub",
|
|
||||||
"tests/pubsub/testfloodsub",
|
|
||||||
"tests/pubsub/testgossipinternal"
|
|
||||||
]
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
|
@ -36,105 +27,18 @@ jobs:
|
||||||
env MAKE="make -j${NPROC}" bash build_nim.sh Nim csources dist/nimble NimBinaries
|
env MAKE="make -j${NPROC}" bash build_nim.sh Nim csources dist/nimble NimBinaries
|
||||||
export PATH="$PATH:$PWD/Nim/bin"
|
export PATH="$PATH:$PWD/Nim/bin"
|
||||||
nimble install_pinned
|
nimble install_pinned
|
||||||
export NIM_OPTIONS="--opt:speed -d:debug --verbosity:0 --hints:off --lineDir:on -d:chronicles_log_level=INFO --warning[CaseTransition]:off --warning[ObservableStores]:off --warning[LockLevel]:off --nimcache:nimcache --passC:-fprofile-arcs --passC:-ftest-coverage --passL:-fprofile-arcs --passL:-ftest-coverage ${{ matrix.nim-options }}"
|
export NIMFLAGS="--lineDir:on --passC:-fprofile-arcs --passC:-ftest-coverage --passL:-fprofile-arcs --passL:-ftest-coverage"
|
||||||
nim c $NIM_OPTIONS -r ${{ matrix.test-program }}
|
nimble testnative
|
||||||
cd nimcache; rm *.c; cd ..
|
nimble testpubsub
|
||||||
|
nimble testfilter
|
||||||
|
find nimcache -name *.c -delete
|
||||||
lcov --capture --directory nimcache --output-file coverage/coverage.info
|
lcov --capture --directory nimcache --output-file coverage/coverage.info
|
||||||
shopt -s globstar
|
shopt -s globstar
|
||||||
ls `pwd`/libp2p/{*,**/*}.nim
|
ls `pwd`/libp2p/{*,**/*}.nim
|
||||||
lcov --extract coverage/coverage.info `pwd`/libp2p/{*,**/*}.nim --output-file coverage/coverage.f.info
|
lcov --extract coverage/coverage.info `pwd`/libp2p/{*,**/*}.nim --output-file coverage/coverage.f.info
|
||||||
export COV_UUID=`cksum <<< "${{ matrix.test-program }} $NIM_OPTIONS" | cut -f 1 -d ' '`
|
genhtml coverage/coverage.f.info --output-directory coverage/output
|
||||||
genhtml coverage/coverage.f.info --output-directory coverage/$COV_UUID-output
|
|
||||||
echo ${{ matrix.test-program }} > coverage/$COV_UUID-nim_options.txt
|
|
||||||
echo $NIM_OPTIONS >> coverage/$COV_UUID-nim_options.txt
|
|
||||||
bash <(curl -s https://codecov.io/bash) -f coverage/coverage.f.info || echo "Codecov did not collect coverage reports"
|
bash <(curl -s https://codecov.io/bash) -f coverage/coverage.f.info || echo "Codecov did not collect coverage reports"
|
||||||
- uses: actions/upload-artifact@master
|
- uses: actions/upload-artifact@master
|
||||||
with:
|
with:
|
||||||
name: coverage
|
name: coverage
|
||||||
path: coverage
|
path: coverage
|
||||||
|
|
||||||
Tests:
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
nim-options: [
|
|
||||||
""
|
|
||||||
]
|
|
||||||
test-program: [
|
|
||||||
"tests/testnative",
|
|
||||||
]
|
|
||||||
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 NIM_OPTIONS="--opt:speed -d:debug --verbosity:0 --hints:off --lineDir:on -d:chronicles_log_level=INFO --warning[CaseTransition]:off --warning[ObservableStores]:off --warning[LockLevel]:off --nimcache:nimcache --passC:-fprofile-arcs --passC:-ftest-coverage --passL:-fprofile-arcs --passL:-ftest-coverage ${{ matrix.nim-options }} --clearNimblePath --NimblePath:nimbledeps/pkgs"
|
|
||||||
nim c $NIM_OPTIONS -r ${{ matrix.test-program }}
|
|
||||||
cd nimcache; rm *.c; cd ..
|
|
||||||
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
|
|
||||||
export COV_UUID=`cksum <<< "${{ matrix.test-program }} $NIM_OPTIONS" | cut -f 1 -d ' '`
|
|
||||||
genhtml coverage/coverage.f.info --output-directory coverage/$COV_UUID-output
|
|
||||||
echo ${{ matrix.test-program }} > coverage/$COV_UUID-nim_options.txt
|
|
||||||
echo $NIM_OPTIONS >> coverage/$COV_UUID-nim_options.txt
|
|
||||||
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
|
|
||||||
|
|
||||||
Filter:
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
nim-options: [
|
|
||||||
"",
|
|
||||||
"-d:libp2p_pki_schemes=secp256k1",
|
|
||||||
"-d:libp2p_pki_schemes=secp256k1;ed25519",
|
|
||||||
"-d:libp2p_pki_schemes=secp256k1;ed25519;ecnist",
|
|
||||||
]
|
|
||||||
test-program: [
|
|
||||||
"tests/testpkifilter",
|
|
||||||
]
|
|
||||||
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 NIM_OPTIONS="--opt:speed -d:debug --verbosity:0 --hints:off --lineDir:on -d:chronicles_log_level=INFO --warning[CaseTransition]:off --warning[ObservableStores]:off --warning[LockLevel]:off --nimcache:nimcache --passC:-fprofile-arcs --passC:-ftest-coverage --passL:-fprofile-arcs --passL:-ftest-coverage ${{ matrix.nim-options }}"
|
|
||||||
nim c $NIM_OPTIONS -r ${{ matrix.test-program }}
|
|
||||||
cd nimcache; rm *.c; cd ..
|
|
||||||
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
|
|
||||||
export COV_UUID=`cksum <<< "${{ matrix.test-program }} $NIM_OPTIONS" | cut -f 1 -d ' '`
|
|
||||||
genhtml coverage/coverage.f.info --output-directory coverage/$COV_UUID-output
|
|
||||||
echo ${{ matrix.test-program }} > coverage/$COV_UUID-nim_options.txt
|
|
||||||
echo $NIM_OPTIONS >> coverage/$COV_UUID-nim_options.txt
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,8 @@
|
||||||
codecov:
|
codecov:
|
||||||
notify:
|
notify:
|
||||||
require_ci_to_pass: true
|
require_ci_to_pass: true
|
||||||
# must be the number of coverage report builds
|
|
||||||
# notice that this number is for PRs;
|
|
||||||
# like this we disabled notify on pure branches report
|
|
||||||
# which is fine I guess
|
|
||||||
after_n_builds: 28
|
|
||||||
comment:
|
comment:
|
||||||
layout: "reach, diff, flags, files"
|
layout: "reach, diff, flags, files"
|
||||||
after_n_builds: 28 # must be the number of coverage report builds
|
|
||||||
coverage:
|
coverage:
|
||||||
status:
|
status:
|
||||||
project:
|
project:
|
||||||
|
@ -16,4 +10,4 @@ coverage:
|
||||||
# basic settings
|
# basic settings
|
||||||
target: auto
|
target: auto
|
||||||
threshold: 5%
|
threshold: 5%
|
||||||
base: auto
|
base: auto
|
||||||
|
|
|
@ -19,6 +19,7 @@ requires "nim >= 1.2.0",
|
||||||
"websock",
|
"websock",
|
||||||
"unittest2 >= 0.0.5 & < 0.1.0"
|
"unittest2 >= 0.0.5 & < 0.1.0"
|
||||||
|
|
||||||
|
import hashes
|
||||||
proc runTest(filename: string, verify: bool = true, sign: bool = true,
|
proc runTest(filename: string, verify: bool = true, sign: bool = true,
|
||||||
moreoptions: string = "") =
|
moreoptions: string = "") =
|
||||||
var excstr = "nim c --skipParentCfg --opt:speed -d:debug -d:libp2p_agents_metrics -d:libp2p_protobuf_metrics -d:libp2p_network_protocols_metrics -d:libp2p_mplex_metrics "
|
var excstr = "nim c --skipParentCfg --opt:speed -d:debug -d:libp2p_agents_metrics -d:libp2p_protobuf_metrics -d:libp2p_network_protocols_metrics -d:libp2p_mplex_metrics "
|
||||||
|
@ -29,6 +30,8 @@ proc runTest(filename: string, verify: bool = true, sign: bool = true,
|
||||||
excstr.add(" -d:libp2p_pubsub_sign=" & $sign)
|
excstr.add(" -d:libp2p_pubsub_sign=" & $sign)
|
||||||
excstr.add(" -d:libp2p_pubsub_verify=" & $verify)
|
excstr.add(" -d:libp2p_pubsub_verify=" & $verify)
|
||||||
excstr.add(" " & moreoptions & " ")
|
excstr.add(" " & moreoptions & " ")
|
||||||
|
if getEnv("CICOV").len > 0:
|
||||||
|
excstr &= " --nimcache:nimcache/" & filename & "-" & $excstr.hash
|
||||||
exec excstr & " -r " & " tests/" & filename
|
exec excstr & " -r " & " tests/" & filename
|
||||||
rmFile "tests/" & filename.toExe
|
rmFile "tests/" & filename.toExe
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue