71 lines
2.2 KiB
YAML
71 lines
2.2 KiB
YAML
# vim: set ts=4 sw=4 expandtab:
|
|
image: gcc
|
|
|
|
variables:
|
|
GIT_STRATEGY: clone
|
|
|
|
stages:
|
|
- build
|
|
- LPDDR4
|
|
- DDR3
|
|
- DDR4
|
|
- HBM2
|
|
- Coverage
|
|
|
|
build:
|
|
stage: build
|
|
script:
|
|
- git submodule sync
|
|
- git submodule update --init --recursive
|
|
- rm -rf build
|
|
- mkdir -p build
|
|
- cd build
|
|
- export COVERAGE=true
|
|
- cmake ../DRAMSys
|
|
- make -j 24
|
|
- find . -name "*.o" -type f -delete
|
|
# Create Base file to cover all lines
|
|
- mkdir -p ${CI_PROJECT_DIR}/coverage
|
|
- cd ${CI_PROJECT_DIR}/coverage
|
|
- export GCOV_PREFIX=$(pwd)
|
|
- export GCOV_PREFIX_STRIP=$(pwd | awk -F"/" '{print NF-1}')
|
|
- lcov -q -c --initial --rc geninfo_adjust_src_path=$GCOV_PREFIX -d ${CI_PROJECT_DIR} -o ${CI_PROJECT_DIR}/coverage/base.out
|
|
|
|
cache:
|
|
key: build
|
|
paths:
|
|
- build/
|
|
policy: push
|
|
|
|
artifacts:
|
|
paths:
|
|
- coverage/base.out
|
|
|
|
coverage:
|
|
stage: Coverage
|
|
coverage: '/Total:\|(\d+\.?\d+\%)/'
|
|
script:
|
|
# delete all empty files since they produce errors
|
|
- find coverage -size 0 -type f -delete
|
|
- rm coverage/base.out
|
|
- ls coverage/ -lah
|
|
- lcov `find coverage -type f -exec echo "-a {}" \;` -o coverage/final.out
|
|
- lcov --remove coverage/final.out '*/systemc*/include/*' '*/traceAnalyzer/*' '*/gcc*/include/*' '/usr/include/*' '*/third_party/*' -o coverage/final_dramsys.out
|
|
- lcov --list coverage/final_dramsys.out
|
|
# Create html
|
|
- mkdir ${CI_PROJECT_DIR}/html
|
|
- genhtml --prefix ${CI_PROJECT_DIR} --ignore-errors source coverage/final_dramsys.out --legend --title "`git log | head | grep commit`" --output-directory=html/
|
|
|
|
artifacts:
|
|
paths:
|
|
- coverage/final.out
|
|
- coverage/final_dramsys.out
|
|
- html/
|
|
|
|
include:
|
|
- '/DRAMSys/tests/lpddr4/ci.yml'
|
|
- '/DRAMSys/tests/ddr3_multirank/ci.yml'
|
|
- '/DRAMSys/tests/DDR4/ci.yml'
|
|
- '/DRAMSys/tests/HBM2/ci.yml'
|
|
#- '/DRAMSys/tests/dramsys-gem5/ci.yml' # Should be activated again when a new gitlab runner with right dependencies is used
|