aboutsummaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml64
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