Files
DRAMSys/gitlab-ci.yml
2020-06-26 11:29:22 +02:00

69 lines
2.1 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
- qmake ../DRAMSys/DRAMSys.pro
- make -j4
- find . -name "*.o" -type f -delete
# Create Base file to cover all lines
- mkdir -p ${CI_PROJECT_DIR}/coverage
- cd ${CI_PROJECT_DIR}
- 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
- ls coverage/ -lah
- lcov `find coverage -type f -exec echo "-a {}" \;` -o coverage/final.out
- lcov --remove coverage/final.out '*/systemc*/include/*' '*/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