summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2017-09-06 16:15:26 -0400
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2017-09-08 20:36:40 -0400
commitc861efd4b2acc3f9de5328e38e7a63f9e6e91c6f (patch)
treeff5eb7f354b8b5be0eadb7ee8b92611e075af487
parentb02f347a2ef75503da607dcd5ab07f60c8a82b15 (diff)
downloadbuildstream-c861efd4b2acc3f9de5328e38e7a63f9e6e91c6f.tar.gz
.gitlab-ci.yml: Produce combined coverage report
This report combines the coverage from the integration tests and the pytest suite together into one report so we can see just what parts of the code base we're covering collectively.
-rw-r--r--.gitlab-ci.yml47
1 files changed, 43 insertions, 4 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ef4149635..b3ee47319 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,6 +4,11 @@ cache:
paths:
- cache/buildstream/sources/
+stages:
+ - test
+ - coverage
+ - docs
+
before_script:
# Diagnostics
- mount
@@ -19,24 +24,58 @@ before_script:
# Run premerge commits
#
-tests:
+pytest:
+ stage: test
script:
- dnf install -y bzr
- python3 setup.py test
+ - mkdir -p coverage-pytest/
+ - cp .coverage.* coverage-pytest/coverage.pytest
+ artifacts:
+ paths:
+ - coverage-pytest/
# Run integration tests
#
-integration_tests:
+integration:
+ stage: test
script:
- - dnf install -y findutils bzr
+ - dnf install -y findutils bzr which
+ - pip3 install coverage
- pip3 install .
- git clone https://gitlab.com/BuildStream/buildstream-tests.git
- cd buildstream-tests
- - ./run-test.sh --arg --colors test
+ - ./run-test.sh --arg --colors --cov ../.coveragerc test
+ - cd ..
+ - mkdir -p coverage-integration/
+ - cp buildstream-tests/.coverage coverage-integration/coverage.integration
+ - cp -a cache/buildstream/logs logs-integration
+ artifacts:
+ paths:
+ - coverage-integration/
+ - logs-integration/
+
+# Collate coverage reports
+#
+coverage:
+ stage: coverage
+ script:
+ - pip3 install coverage
+ - pip3 install .
+ - mkdir report
+ - cp coverage-integration/coverage.integration report/.coverage
+ - cp coverage-pytest/coverage.pytest report
+ - cd report
+ - coverage combine --rcfile=../.coveragerc -a coverage.pytest
+ - coverage report -m
+ dependencies:
+ - pytest
+ - integration
# Automatically build documentation, only for merges which land
# on master branch.
pages:
+ stage: docs
script:
- dnf install -y findutils python2
- pip3 install sphinx