From 71c5bc4e3b3f1d12763d978f246c766b53cc625c Mon Sep 17 00:00:00 2001 From: Martin Milata Date: Thu, 13 Aug 2020 18:37:43 +0200 Subject: [PATCH] ci: fail if coverage falls under threshold --- ci/posttest.yml | 5 ++++- core/Makefile | 6 +----- core/tools/coverage-report | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 6 deletions(-) create mode 100755 core/tools/coverage-report diff --git a/ci/posttest.yml b/ci/posttest.yml index dec93c5d8..243763827 100644 --- a/ci/posttest.yml +++ b/ci/posttest.yml @@ -2,16 +2,19 @@ image: registry.gitlab.com/satoshilabs/trezor/trezor-firmware/trezor-firmware-en core unix coverage posttest: stage: posttest + variables: + COVERAGE_THRESHOLD: "78" needs: ["core device test", "core monero test", "core u2f test", "core fido2 test"] script: - nix-shell --run "pipenv run make -C core res" # we need to regenerate resources.py - nix-shell --run "pipenv run make -C core coverage" - coverage: '/>\d+%/dev/null && \ - mv .coverage .coverage.empty && \ - coverage combine .coverage.* && \ - coverage html - grep pc_cov htmlcov/index.html + ./tools/coverage-report diff --git a/core/tools/coverage-report b/core/tools/coverage-report new file mode 100755 index 000000000..4cccb357a --- /dev/null +++ b/core/tools/coverage-report @@ -0,0 +1,16 @@ +#!/bin/sh + +COVERAGE_THRESHOLD=${COVERAGE_THRESHOLD:-0} + +coverage run --source=./src /dev/null 2>/dev/null +mv .coverage .coverage.empty +coverage combine .coverage.* + +coverage html --fail-under=${COVERAGE_THRESHOLD} +if [ $? -eq 2 ]; then + echo "Code coverage is less than ${COVERAGE_THRESHOLD}%" + exit 1 +fi + +RESULT=$(grep pc_cov htmlcov/index.html | egrep -o '[0-9]{1,3}%') +echo "COVERAGE: ${RESULT}"