diff options
-rw-r--r-- | .coveragerc | 2 | ||||
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | .gitlab-ci.yml | 28 | ||||
-rw-r--r-- | tox.ini | 42 |
4 files changed, 56 insertions, 19 deletions
diff --git a/.coveragerc b/.coveragerc index d81aec1a2..af22a1282 100644 --- a/.coveragerc +++ b/.coveragerc @@ -9,6 +9,8 @@ omit = # Omit generated code */buildstream/_protos/* */.eggs/* + # Omit .tox directory + */.tox/* [report] show_missing = True diff --git a/.gitignore b/.gitignore index 3fd1addbc..00cb4e2c4 100644 --- a/.gitignore +++ b/.gitignore @@ -13,11 +13,12 @@ tests/**/*.pyc integration-cache/ tmp .coverage +.coverage-reports/ .coverage.* .cache .pytest_cache/ *.bst/ -.tox +.tox/ # Pycache, in case buildstream is ran directly from within the source # tree diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9706037a4..78e725da8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,6 +13,7 @@ variables: PYTEST_ADDOPTS: "--color=yes" INTEGRATION_CACHE: "${CI_PROJECT_DIR}/cache/integration-cache" TEST_COMMAND: "tox -- --color=yes --integration" + COVERAGE_PREFIX: "${CI_JOB_NAME}." ##################################################### @@ -24,9 +25,6 @@ variables: .tests-template: &tests stage: test - variables: - COVERAGE_DIR: coverage-linux - before_script: # Diagnostics - mount @@ -40,14 +38,11 @@ variables: - su buildstream -c "${TEST_COMMAND}" after_script: - # Collect our reports - - mkdir -p ${COVERAGE_DIR} - - cp .coverage ${COVERAGE_DIR}/coverage."${CI_JOB_NAME}" except: - schedules artifacts: paths: - - ${COVERAGE_DIR} + - .coverage-reports tests-debian-9: image: buildstream/testsuite-debian:9-5da27168-32c47d1c @@ -83,7 +78,6 @@ tests-unix: <<: *tests variables: BST_FORCE_BACKEND: "unix" - COVERAGE_DIR: coverage-unix script: @@ -239,22 +233,22 @@ coverage: stage: post coverage: '/TOTAL +\d+ +\d+ +(\d+\.\d+)%/' script: - - pip3 install -r requirements/requirements.txt -r requirements/dev-requirements.txt - - pip3 install --no-index . - - mkdir report - - cd report - - cp ../coverage-unix/coverage.* . - - cp ../coverage-linux/coverage.* . - - ls coverage.* - - coverage combine --rcfile=../.coveragerc -a coverage.* - - coverage report --rcfile=../.coveragerc -m + - cp -a .coverage-reports/ ./coverage-sources + - tox -e coverage + - cp -a .coverage-reports/ ./coverage-report dependencies: - tests-debian-9 - tests-fedora-27 - tests-fedora-28 + - tests-fedora-missing-deps + - tests-ubuntu-18.04 - tests-unix except: - schedules + artifacts: + paths: + - coverage-sources/ + - coverage-report/ # Deploy, only for merges which land on master branch. # @@ -1,9 +1,20 @@ +# +# Tox global configuration +# [tox] envlist = py35,py36,py37 skip_missing_interpreters = true +# +# Defaults for all environments +# +# Anything specified here is iherited by the sections +# [testenv] -commands = pytest {posargs} +commands = + pytest --basetemp {envtmpdir} {posargs} + mkdir -p .coverage-reports + mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname} deps = -rrequirements/requirements.txt -rrequirements/dev-requirements.txt @@ -13,6 +24,32 @@ passenv = GI_TYPELIB_PATH INTEGRATION_CACHE +# +# These keys are not inherited by any other sections +# +setenv = + py{35,36,37}: COVERAGE_FILE = {envtmpdir}/.coverage +whitelist_externals = + py{35,36,37}: + mv + mkdir + +# +# Coverage reporting +# +[testenv:coverage] +commands = + - coverage combine --rcfile={toxinidir}/.coveragerc {toxinidir}/.coverage-reports/ + coverage report --rcfile={toxinidir}/.coveragerc -m +deps = + -rrequirements/requirements.txt + -rrequirements/dev-requirements.txt +setenv = + COVERAGE_FILE = {toxinidir}/.coverage-reports/.coverage + +# +# Running linters +# [testenv:lint] commands = pycodestyle @@ -22,6 +59,9 @@ deps = -rrequirements/dev-requirements.txt -rrequirements/plugin-requirements.txt +# +# Building documentation +# [testenv:docs] commands = make -C doc |