mirror of
https://github.com/logos-storage/logos-storage-nim-dht.git
synced 2026-01-02 13:33:08 +00:00
- changed the CI to use prebuild nimble binary and to use lock file. - the nim version is determined by the lock file - there were some packages that have version range but at the same time corresponding versions were not tagged at the repo. I have hardcoded the version of the package commit. Later when the version is tagged in the source repo the version range can be returned.
64 lines
3.0 KiB
Nim
64 lines
3.0 KiB
Nim
# Package
|
|
|
|
version = "0.0.1"
|
|
author = "Status Research & Development GmbH"
|
|
description = "DHT based on the libp2p Kademlia spec"
|
|
license = "MIT"
|
|
skipDirs = @["tests"]
|
|
|
|
|
|
# TODO: fix versions after tagging the version in the corresponding package
|
|
# Dependencies
|
|
requires "nim >= 1.2.0",
|
|
"secp256k1#b3f38e2795e805743b299dc5d96d332db375b520", # >= 0.5.2 & < 0.6.0
|
|
"protobufserialization#27b400fdf3bd8ce7120ca66fc1de39d3f1a5804a", # >= 0.2.0 & < 0.3.0
|
|
"nimcrypto == 0.5.4",
|
|
"bearssl#head",
|
|
"chronicles >= 0.10.2 & < 0.11.0",
|
|
"chronos#1394c9e04957928afc1db33d2e0965cfb677a1e0", # >= 3.0.11 & < 3.1.0
|
|
"libp2p#unstable",
|
|
"metrics",
|
|
"stew#head",
|
|
"stint",
|
|
"asynctest >= 0.3.1 & < 0.4.0",
|
|
"https://github.com/status-im/nim-datastore#head",
|
|
"questionable"
|
|
|
|
task coverage, "generates code coverage report":
|
|
var (output, exitCode) = gorgeEx("which lcov")
|
|
if exitCode != 0:
|
|
echo ""
|
|
echo " ************************** ⛔️ ERROR ⛔️ **************************"
|
|
echo " ** **"
|
|
echo " ** ERROR: lcov not found, it must be installed to run code **"
|
|
echo " ** coverage locally **"
|
|
echo " ** **"
|
|
echo " *****************************************************************"
|
|
echo ""
|
|
quit 1
|
|
|
|
(output, exitCode) = gorgeEx("gcov --version")
|
|
if output.contains("Apple LLVM"):
|
|
echo ""
|
|
echo " ************************* ⚠️ WARNING ⚠️ *************************"
|
|
echo " ** **"
|
|
echo " ** WARNING: Using Apple's llvm-cov in place of gcov, which **"
|
|
echo " ** emulates an old version of gcov (4.2.0) and therefore **"
|
|
echo " ** coverage results will differ than those on CI (which **"
|
|
echo " ** uses a much newer version of gcov). **"
|
|
echo " ** **"
|
|
echo " *****************************************************************"
|
|
echo ""
|
|
|
|
exec(nimbleExe & " --verbose test --opt:speed -d:debug --verbosity:0 --hints:off --lineDir:on -d:chronicles_log_level=INFO --nimcache:nimcache --passC:-fprofile-arcs --passC:-ftest-coverage --passL:-fprofile-arcs --passL:-ftest-coverage")
|
|
exec("cd nimcache; rm *.c; cd ..")
|
|
mkDir("coverage")
|
|
exec("lcov --capture --directory nimcache --output-file coverage/coverage.info")
|
|
exec("$(which bash) -c 'shopt -s globstar; ls $(pwd)/libp2pdht/{*,**/*}.nim'")
|
|
exec("$(which bash) -c 'shopt -s globstar; lcov --extract coverage/coverage.info $(pwd)/libp2pdht/{*,**/*}.nim --output-file coverage/coverage.f.info'")
|
|
echo "Generating HTML coverage report"
|
|
exec("genhtml coverage/coverage.f.info --output-directory coverage/report")
|
|
echo "Opening HTML coverage report in browser..."
|
|
exec("open coverage/report/index.html")
|
|
|