114b11b2bSmrg# Summary stage 214b11b2bSmrg# 314b11b2bSmrg# This stage takes coverage reports from test runs for all architectures, and 414b11b2bSmrg# merges it into a single report, with GitLab visualization. There is also an 514b11b2bSmrg# HTML report generated as a separate artifact. 614b11b2bSmrg 714b11b2bSmrgsummary: 814b11b2bSmrg extends: .target:all 914b11b2bSmrg stage: summary 1014b11b2bSmrg variables: 1114b11b2bSmrg TARGET: linux-amd64 1214b11b2bSmrg COVERAGE_SUMMARY_DIR: ${COVERAGE_BASE_DIR}/summary 1314b11b2bSmrg needs: 1414b11b2bSmrg - job: test:linux-386 1514b11b2bSmrg optional: true 1614b11b2bSmrg - job: test:linux-amd64 1714b11b2bSmrg optional: true 1814b11b2bSmrg - job: test:linux-arm-v7 1914b11b2bSmrg optional: true 2014b11b2bSmrg - job: test:linux-arm64-v8 2114b11b2bSmrg optional: true 2214b11b2bSmrg - job: test:linux-mips64le 2314b11b2bSmrg optional: true 2414b11b2bSmrg - job: test:linux-ppc64le 2514b11b2bSmrg optional: true 2614b11b2bSmrg - job: test:linux-riscv64 2714b11b2bSmrg optional: true 2814b11b2bSmrg script: 2914b11b2bSmrg - echo "Input coverage reports:" && ls ${COVERAGE_BASE_DIR}/*.json || (echo "No coverage reports available." && exit) 3014b11b2bSmrg - | 3114b11b2bSmrg args=( ) 3214b11b2bSmrg for f in ${COVERAGE_BASE_DIR}/*.json; do 3314b11b2bSmrg args+=( "-a" "$f" ) 3414b11b2bSmrg done 3514b11b2bSmrg - mkdir -p ${COVERAGE_SUMMARY_DIR} 3614b11b2bSmrg - gcovr "${args[@]}" 3714b11b2bSmrg --cobertura-pretty --cobertura ${COVERAGE_SUMMARY_DIR}/coverage.xml 3814b11b2bSmrg --html-details ${COVERAGE_SUMMARY_DIR}/coverage.html 3914b11b2bSmrg --txt --print-summary 4014b11b2bSmrg coverage: '/^TOTAL.*\s+(\d+\%)$/' 4114b11b2bSmrg artifacts: 4214b11b2bSmrg when: always 4314b11b2bSmrg reports: 4414b11b2bSmrg coverage_report: 4514b11b2bSmrg coverage_format: cobertura 4614b11b2bSmrg path: ${COVERAGE_SUMMARY_DIR}/coverage.xml 4714b11b2bSmrg paths: 4814b11b2bSmrg - ${COVERAGE_BASE_DIR}/ 49