Loading .gitlab-ci.d/coverage.yml 0 → 100644 +89 −0 Changes for .gitlab-ci.d/coverage.yml: 89 added lines, 0 removed lines. Original line number Diff line number Diff line spec: inputs: stage: default: test description: 'Defines the coverage stage (Default: test)' package: default: undefined-package description: 'Defines the coverage package (Default: undefined-package)' alias: default: '' description: 'Defines the coverage alias (Default: "")' --- .coverage:scripts: 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_RCFILE: ${CI_PROJECT_DIR}/.coveragerc before_script: # Prepare coverage reports - mkdir -p ./coverage-reports/ - chmod 777 ./coverage-reports - | if [ -z "${SUITE}" ]; then coverage erase fi # Test coverage execution - coverage run --append --module --source="${PWD}/src" src --version >/dev/null # Prepare coverage result - chmod 666 "${COVERAGE_FILE}" # Bind coverage entrypoints - echo "coverage run --append --module --source='${PWD}/src' src \"\${@}\"" | tee /usr/local/bin/$[[ inputs.package ]] >/dev/null - chmod a+x /usr/local/bin/$[[ inputs.package ]] - | if [ ! -z '$[[ inputs.alias ]]' ]; then echo "coverage run --append --module --source='${PWD}/src' src \"\${@}\"" | tee /usr/local/bin/$[[ inputs.alias ]] >/dev/null chmod a+x '/usr/local/bin/$[[ inputs.alias ]]' fi - echo "coverage run --append --source='${PWD}/src' src \"\${@}\"" | tee /usr/local/bin/python3-coverage >/dev/null - chmod a+x /usr/local/bin/python3-coverage script: # Configure coverage settings - | 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 echo "${CI_LOCAL:+pragma: no local cover}|${COVERAGE_EXCLUDE_ALSO}" | tr '|' '\n' | xargs -i -n1 echo ' \A(?s:.*# {} file.*)\Z' >>/tmp/.coveragerc.job # Generate coverage report - coverage xml -o "${COVERAGE_XML}" - sed -i 's#\(<source>\).*\(</source>\)#\1.\2#g' "${COVERAGE_XML}" # Show coverage report - COVERAGE_RCFILE='/tmp/.coveragerc.job' coverage report --show-missing --skip-covered after_script: # Combine coverage reports - | set +x if [ ! -z "${CI_LOCAL}" ]; then COVERAGE_FILE="${COVERAGE_COMMON_FILE}" coverage combine --keep ./coverage-reports/.coverage-* 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}" fi .coverage:template: extends: - .test:template - .coverage:scripts script: # Inherit script - !reference ['.test:template', script] - !reference ['.coverage:scripts', script] variables: COVERAGE_FILE: ${CI_PROJECT_DIR}/coverage-reports/.coverage-undefined COVERAGE_EXCLUDE_ALSO: 'pragma: undefined cover|pragma: undefined2 cover' COVERAGE_XML: ${CI_PROJECT_DIR}/coverage-reports/coverage-undefined.xml PYTHONDONTWRITEBYTECODE: 1 PYTHONPATH: ${CI_PROJECT_DIR} SUITE: '' coverage: '/TOTAL.+ ([0-9]{1,3}%)/' artifacts: paths: - coverage-reports/ reports: coverage_report: coverage_format: cobertura path: coverage-reports/coverage-*.xml .gitlab-ci.yml +14 −69 Changes for .gitlab-ci.yml: 14 added lines, 69 removed lines. Original line number Diff line number Diff line Loading @@ -38,6 +38,10 @@ include: stage: test package: gitlab-projects-settings timeout: 10m - local: .gitlab-ci.d/coverage.yml inputs: stage: test package: gitlab-projects-settings - local: .gitlab-ci.d/quality.yml inputs: stage: quality Loading Loading @@ -283,56 +287,7 @@ build: - if: $CI_COMMIT_TAG || $CI_PIPELINE_SOURCE == "trigger" || $CI_PIPELINE_SOURCE == "web" || $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH when: on_success .coverage-scripts: 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_RCFILE: ${CI_PROJECT_DIR}/.coveragerc before_script: - mkdir -p ./coverage-reports/ - chmod 777 ./coverage-reports - | if [ -z "${SUITE}" ]; then coverage erase fi - coverage run --append --module --source="${PWD}/src" src --version >/dev/null - chmod 666 "${COVERAGE_FILE}" - echo "coverage run --append --module --source='${PWD}/src' src \"\${@}\"" | tee /usr/local/bin/gitlab-projects-settings >/dev/null - 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 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 echo "${CI_LOCAL:+pragma: no local cover}|${COVERAGE_EXCLUDE_ALSO}" | tr '|' '\n' | xargs -i -n1 echo ' \A(?s:.*# {} file.*)\Z' >>/tmp/.coveragerc.job - coverage xml -o "${COVERAGE_XML}" - COVERAGE_RCFILE='/tmp/.coveragerc.job' coverage report --show-missing --skip-covered - sed -i 's#\(<source>\).*\(</source>\)#\1.\2#g' "${COVERAGE_XML}" after_script: - | set +x if [ ! -z "${CI_LOCAL}" ]; then COVERAGE_FILE="${COVERAGE_COMMON_FILE}" coverage combine --keep ./coverage-reports/.coverage-* 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}" fi .coverage-template: extends: - .test:template - .test:rules - .coverage-scripts variables: PYTHONDONTWRITEBYTECODE: 1 PYTHONPATH: ${CI_PROJECT_DIR} script: - !reference ['.test:template', script] - !reference [.coverage-scripts, script] .coverage:rules: rules: - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH changes: Loading @@ -345,21 +300,11 @@ build: when: on_success - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: always coverage: '/TOTAL.+ ([0-9]{1,3}%)/' artifacts: paths: - coverage-reports/ reports: coverage_report: coverage_format: cobertura path: coverage-reports/coverage-*.xml # ============================================================================= # Stage: test (coverage) coverage:linux: extends: - .coverage-template - .coverage:template - .coverage:rules image: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/gitlab-projects-settings:test-coverage-linux needs: - job: registry:test-coverage-linux Loading @@ -372,7 +317,8 @@ coverage:linux: coverage:windows: extends: - .coverage-template - .coverage:template - .coverage:rules image: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/gitlab-projects-settings:test-coverage-windows needs: - job: registry:test-coverage-windows Loading @@ -384,15 +330,13 @@ coverage:windows: COVERAGE_XML: ${CI_PROJECT_DIR}/coverage-reports/coverage-windows.xml SUITE: 'colors\|versions\|windows' # ============================================================================= # Stage: test (Python) py3.8: extends: - .test:template - .test:rules image: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/gitlab-projects-settings:test-oldest before_script: # Inherit before_script - !reference ['.test:template', before_script] py3.12: Loading @@ -401,6 +345,7 @@ py3.12: - .test:rules image: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/gitlab-projects-settings:test-latest before_script: # Inherit before_script - !reference ['.test:template', before_script] quality:coverage: Loading @@ -411,9 +356,9 @@ quality:coverage: - job: coverage:linux - job: coverage:windows variables: COVERAGE_FILE: !reference [.coverage-scripts, variables, COVERAGE_COMMON_FILE] COVERAGE_RCFILE: !reference [.coverage-scripts, variables, COVERAGE_RCFILE] rules: !reference [.coverage-template, rules] COVERAGE_FILE: !reference ['.coverage:scripts', variables, COVERAGE_COMMON_FILE] COVERAGE_RCFILE: !reference ['.coverage:scripts', variables, COVERAGE_RCFILE] rules: !reference ['.coverage:rules', rules] quality:sonarcloud: needs: Loading Loading
.gitlab-ci.d/coverage.yml 0 → 100644 +89 −0 Changes for .gitlab-ci.d/coverage.yml: 89 added lines, 0 removed lines. Original line number Diff line number Diff line spec: inputs: stage: default: test description: 'Defines the coverage stage (Default: test)' package: default: undefined-package description: 'Defines the coverage package (Default: undefined-package)' alias: default: '' description: 'Defines the coverage alias (Default: "")' --- .coverage:scripts: 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_RCFILE: ${CI_PROJECT_DIR}/.coveragerc before_script: # Prepare coverage reports - mkdir -p ./coverage-reports/ - chmod 777 ./coverage-reports - | if [ -z "${SUITE}" ]; then coverage erase fi # Test coverage execution - coverage run --append --module --source="${PWD}/src" src --version >/dev/null # Prepare coverage result - chmod 666 "${COVERAGE_FILE}" # Bind coverage entrypoints - echo "coverage run --append --module --source='${PWD}/src' src \"\${@}\"" | tee /usr/local/bin/$[[ inputs.package ]] >/dev/null - chmod a+x /usr/local/bin/$[[ inputs.package ]] - | if [ ! -z '$[[ inputs.alias ]]' ]; then echo "coverage run --append --module --source='${PWD}/src' src \"\${@}\"" | tee /usr/local/bin/$[[ inputs.alias ]] >/dev/null chmod a+x '/usr/local/bin/$[[ inputs.alias ]]' fi - echo "coverage run --append --source='${PWD}/src' src \"\${@}\"" | tee /usr/local/bin/python3-coverage >/dev/null - chmod a+x /usr/local/bin/python3-coverage script: # Configure coverage settings - | 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 echo "${CI_LOCAL:+pragma: no local cover}|${COVERAGE_EXCLUDE_ALSO}" | tr '|' '\n' | xargs -i -n1 echo ' \A(?s:.*# {} file.*)\Z' >>/tmp/.coveragerc.job # Generate coverage report - coverage xml -o "${COVERAGE_XML}" - sed -i 's#\(<source>\).*\(</source>\)#\1.\2#g' "${COVERAGE_XML}" # Show coverage report - COVERAGE_RCFILE='/tmp/.coveragerc.job' coverage report --show-missing --skip-covered after_script: # Combine coverage reports - | set +x if [ ! -z "${CI_LOCAL}" ]; then COVERAGE_FILE="${COVERAGE_COMMON_FILE}" coverage combine --keep ./coverage-reports/.coverage-* 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}" fi .coverage:template: extends: - .test:template - .coverage:scripts script: # Inherit script - !reference ['.test:template', script] - !reference ['.coverage:scripts', script] variables: COVERAGE_FILE: ${CI_PROJECT_DIR}/coverage-reports/.coverage-undefined COVERAGE_EXCLUDE_ALSO: 'pragma: undefined cover|pragma: undefined2 cover' COVERAGE_XML: ${CI_PROJECT_DIR}/coverage-reports/coverage-undefined.xml PYTHONDONTWRITEBYTECODE: 1 PYTHONPATH: ${CI_PROJECT_DIR} SUITE: '' coverage: '/TOTAL.+ ([0-9]{1,3}%)/' artifacts: paths: - coverage-reports/ reports: coverage_report: coverage_format: cobertura path: coverage-reports/coverage-*.xml
.gitlab-ci.yml +14 −69 Changes for .gitlab-ci.yml: 14 added lines, 69 removed lines. Original line number Diff line number Diff line Loading @@ -38,6 +38,10 @@ include: stage: test package: gitlab-projects-settings timeout: 10m - local: .gitlab-ci.d/coverage.yml inputs: stage: test package: gitlab-projects-settings - local: .gitlab-ci.d/quality.yml inputs: stage: quality Loading Loading @@ -283,56 +287,7 @@ build: - if: $CI_COMMIT_TAG || $CI_PIPELINE_SOURCE == "trigger" || $CI_PIPELINE_SOURCE == "web" || $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH when: on_success .coverage-scripts: 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_RCFILE: ${CI_PROJECT_DIR}/.coveragerc before_script: - mkdir -p ./coverage-reports/ - chmod 777 ./coverage-reports - | if [ -z "${SUITE}" ]; then coverage erase fi - coverage run --append --module --source="${PWD}/src" src --version >/dev/null - chmod 666 "${COVERAGE_FILE}" - echo "coverage run --append --module --source='${PWD}/src' src \"\${@}\"" | tee /usr/local/bin/gitlab-projects-settings >/dev/null - 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 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 echo "${CI_LOCAL:+pragma: no local cover}|${COVERAGE_EXCLUDE_ALSO}" | tr '|' '\n' | xargs -i -n1 echo ' \A(?s:.*# {} file.*)\Z' >>/tmp/.coveragerc.job - coverage xml -o "${COVERAGE_XML}" - COVERAGE_RCFILE='/tmp/.coveragerc.job' coverage report --show-missing --skip-covered - sed -i 's#\(<source>\).*\(</source>\)#\1.\2#g' "${COVERAGE_XML}" after_script: - | set +x if [ ! -z "${CI_LOCAL}" ]; then COVERAGE_FILE="${COVERAGE_COMMON_FILE}" coverage combine --keep ./coverage-reports/.coverage-* 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}" fi .coverage-template: extends: - .test:template - .test:rules - .coverage-scripts variables: PYTHONDONTWRITEBYTECODE: 1 PYTHONPATH: ${CI_PROJECT_DIR} script: - !reference ['.test:template', script] - !reference [.coverage-scripts, script] .coverage:rules: rules: - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH changes: Loading @@ -345,21 +300,11 @@ build: when: on_success - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: always coverage: '/TOTAL.+ ([0-9]{1,3}%)/' artifacts: paths: - coverage-reports/ reports: coverage_report: coverage_format: cobertura path: coverage-reports/coverage-*.xml # ============================================================================= # Stage: test (coverage) coverage:linux: extends: - .coverage-template - .coverage:template - .coverage:rules image: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/gitlab-projects-settings:test-coverage-linux needs: - job: registry:test-coverage-linux Loading @@ -372,7 +317,8 @@ coverage:linux: coverage:windows: extends: - .coverage-template - .coverage:template - .coverage:rules image: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/gitlab-projects-settings:test-coverage-windows needs: - job: registry:test-coverage-windows Loading @@ -384,15 +330,13 @@ coverage:windows: COVERAGE_XML: ${CI_PROJECT_DIR}/coverage-reports/coverage-windows.xml SUITE: 'colors\|versions\|windows' # ============================================================================= # Stage: test (Python) py3.8: extends: - .test:template - .test:rules image: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/gitlab-projects-settings:test-oldest before_script: # Inherit before_script - !reference ['.test:template', before_script] py3.12: Loading @@ -401,6 +345,7 @@ py3.12: - .test:rules image: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/gitlab-projects-settings:test-latest before_script: # Inherit before_script - !reference ['.test:template', before_script] quality:coverage: Loading @@ -411,9 +356,9 @@ quality:coverage: - job: coverage:linux - job: coverage:windows variables: COVERAGE_FILE: !reference [.coverage-scripts, variables, COVERAGE_COMMON_FILE] COVERAGE_RCFILE: !reference [.coverage-scripts, variables, COVERAGE_RCFILE] rules: !reference [.coverage-template, rules] COVERAGE_FILE: !reference ['.coverage:scripts', variables, COVERAGE_COMMON_FILE] COVERAGE_RCFILE: !reference ['.coverage:scripts', variables, COVERAGE_RCFILE] rules: !reference ['.coverage:rules', rules] quality:sonarcloud: needs: Loading