diff options
Diffstat (limited to '.gitlab-ci.yml')
| -rw-r--r-- | .gitlab-ci.yml | 64 |
1 files changed, 51 insertions, 13 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1c1548b..7551708 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,26 +1,64 @@ -.build_matrix: &build_matrix - parallel: - matrix: - - PLATFORM: ["x86_64"] - TYPE: ["dbg", "rel"] +build:bht: + stage: build + image: registry.gitlab.ost.ch:45023/teachos/devcontainers/bht.ci:latest + script: + - cmake --preset bht + - cmake --build --preset bht-dbg 2>&1 | tee build_output.txt + - set -o pipefail + - python3 scripts/ci/parse_clang_tidy.py build_output.txt > code-quality-bht.json + artifacts: + paths: + - build/bht/ + reports: + codequality: code-quality-bht.json + expire_in: 5 min -build: +build:bootable: stage: build - image: registry.gitlab.ost.ch:45023/teachos/devcontainers/x86-64:15.2.0-1 - before_script: - - apt update - - apt install -y cmake grub2-common grub-pc mtools ninja-build xorriso + image: registry.gitlab.ost.ch:45023/teachos/devcontainers/x86-64.ci:latest script: - cmake --preset $PLATFORM - - cmake --build --preset $PLATFORM-$TYPE - - cp build/bin/**/kernel.{dis,elf,sym,iso} . + - cmake --build --preset $PLATFORM-$TYPE 2>&1 | tee build_output.txt + - set -o pipefail + - python3 scripts/ci/parse_clang_tidy.py build_output.txt > code-quality-$PLATFORM-$TYPE.json + - cp build/${PLATFORM}/bin/**/kernel.{dis,elf,sym,iso} . artifacts: paths: - kernel.dis - kernel.elf - kernel.sym - kernel.iso - <<: *build_matrix + reports: + codequality: code-quality-$PLATFORM-$TYPE.json + expire_in: 1 week + + parallel: + matrix: + - PLATFORM: ["x86_64"] + TYPE: ["dbg", "rel"] + +test:bht: + stage: test + image: registry.gitlab.ost.ch:45023/teachos/devcontainers/bht.ci:latest + needs: ["build:bht"] + script: + - ctest --preset bht-dbg + - lcov --quiet --config-file .lcovrc --capture --directory $(pwd) --output-file coverage.info + - lcov --quiet --list coverage.info + - genhtml --quiet --prefix $(pwd) --output-directory coverage coverage.info + - gcovr --root . --cobertura-pretty --output coverage/cobertura-coverage.xml + after_script: + - echo "CoverageReport public URL - https://teachos.pages.ost.ch/-/kernel/-/jobs/$CI_JOB_ID/artifacts/coverage/index.html" + coverage: '/Total:\|\s*(\d+(?:\.\d+)?)\%/' + artifacts: + paths: + - coverage/ + expire_in: 24 hours + reports: + coverage_report: + coverage_format: cobertura + path: coverage/cobertura-coverage.xml + junit: build/bht/**/junit.xml license_check: stage: .pre |
