# vim: set ts=4 sw=4 expandtab:
image: gcc

variables:
  GIT_STRATEGY: clone

stages:
    - build
    - dramsys-gem5-build
    - WIDEIO
    - DDR3
    - 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
        - rm -rf ${CI_PROJECT_DIR}/coverage
        - mkdir -p ${CI_PROJECT_DIR}/coverage

    cache:
        key: build
        paths:
            - build/
        policy: push

    artifacts:
        paths:
            - coverage/

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 --list coverage/final.out

    artifacts:
        paths:
            - coverage/final.out
           

include:
    - '/DRAMSys/tests/DDR3/ci.yml'
    - '/DRAMSys/tests/WIDEIO/ci.yml'
    #- '/DRAMSys/tests/dramsys-gem5/ci.yml' # Should be activated again when a new gitlab runner with right dependencies is used
