Verified Commit aabacc8a authored by Adrian DC's avatar Adrian DC
Browse files

ci(coveragerc, gitlab-ci): implement coverage specific exclusions

Signed-off-by: default avatarAdrian DC <radian.dc@gmail.com>
parent 83cd44ba
Loading
Loading
Loading
Loading
Loading
+4 −0
Changes for .coveragerc: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -5,3 +5,7 @@ source =
    src/
    */src
    *\src

[report]
exclude_also =
    pragma: no cover
+10 −2
Changes for .gitlab-ci.yml: 10 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -592,6 +592,7 @@ readme:
  variables:
    COVERAGE_COMMON_FILE: ${CI_PROJECT_DIR}/coverage-reports/.coverage-common
    COVERAGE_COMMON_XML: ${CI_PROJECT_DIR}/coverage-reports/coverage-common.xml
    COVERAGE_EXCLUDE_ALSO: ''
    COVERAGE_FOLDER: ${CI_PROJECT_DIR}/coverage-reports
    COVERAGE_RCFILE: ${CI_PROJECT_DIR}/.coveragerc
    PYTHONDONTWRITEBYTECODE: 1
@@ -609,14 +610,19 @@ readme:
    - echo "coverage run --append --source='${PWD}/src' src \"\${@}\"" | tee /usr/local/bin/python3-coverage >/dev/null
    - chmod a+x /usr/local/bin/gitlab-projects-settings /usr/local/bin/python3-coverage
  after_script:
    - |
      cp -fv "${COVERAGE_RCFILE}" /tmp/.coveragerc.common
      cp -fv "${COVERAGE_RCFILE}" /tmp/.coveragerc.job
      echo "${CI_LOCAL:+pragma: no local cover}" | tr '|' '\n' | xargs -i -n1 echo '    {}' >>/tmp/.coveragerc.common
      echo "${CI_LOCAL:+pragma: no local cover}|${COVERAGE_EXCLUDE_ALSO}" | tr '|' '\n' | xargs -i -n1 echo '    {}' >>/tmp/.coveragerc.job
    - coverage xml -o "${COVERAGE_XML}"
    - coverage report --show-missing --skip-covered
    - COVERAGE_RCFILE='/tmp/.coveragerc.job' coverage report --show-missing --skip-covered
    - sed -i 's#\(<source>\).*\(</source>\)#\1.\2#g' "${COVERAGE_XML}"
    - |
      set +x
      if [ ! -z "${CI_LOCAL}" ]; then
        COVERAGE_FILE="${COVERAGE_COMMON_FILE}" coverage combine --keep "${COVERAGE_FOLDER}/.coverage-"*
        COVERAGE_FILE="${COVERAGE_COMMON_FILE}" coverage report --ignore-errors --show-missing --skip-covered
        COVERAGE_FILE="${COVERAGE_COMMON_FILE}" COVERAGE_RCFILE='/tmp/.coveragerc.common' coverage report --ignore-errors --show-missing --skip-covered
        COVERAGE_FILE="${COVERAGE_COMMON_FILE}" coverage xml -o "${COVERAGE_COMMON_XML}"
        sed -i 's#\(<source>\).*\(</source>\)#\1.\2#g' "${COVERAGE_COMMON_XML}"
        rm -rf "${common}"
@@ -647,6 +653,7 @@ coverage:linux:
      artifacts: false
      optional: true
  variables:
    COVERAGE_EXCLUDE_ALSO: 'pragma: pragma: windows cover'
    COVERAGE_FILE: ${CI_PROJECT_DIR}/coverage-reports/.coverage-linux
    COVERAGE_XML: ${CI_PROJECT_DIR}/coverage-reports/coverage-linux.xml
  before_script:
@@ -662,6 +669,7 @@ coverage:windows:
      optional: true
  variables:
    COVERAGE_FILE: ${CI_PROJECT_DIR}/coverage-reports/.coverage-windows
    COVERAGE_EXCLUDE_ALSO: 'pragma: linux cover'
    COVERAGE_XML: ${CI_PROJECT_DIR}/coverage-reports/coverage-windows.xml
  before_script:
    - !reference [.coverage-template, before_script]