.gitlab-ci.yml 4.18 KB
Newer Older
1 2
image: hpclib/hiepacs

3 4 5 6
stages:
  - build
  - test
  - analysis
7
  - doc
8

9
build_starpu_cuda_mpi:
10
  stage: build
11
  artifacts:
12
    name: starpu_cuda_mpi_build
PRUVOST Florent's avatar
PRUVOST Florent committed
13
    expire_in: 48 hours
14 15
    paths:
      - build
16
      - chameleon-build-starpu.log
17
  script:
18 19 20
    - source .gitlab-ci-env.sh
    - git submodule update --init --recursive
    - mkdir -p build
21
    - cd build
22
    - cmake .. -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON -DCMAKE_INSTALL_PREFIX=${PWD}/install -DCMAKE_VERBOSE_MAKEFILE=ON -DMORSE_ENABLE_WARNING=ON -DMORSE_ENABLE_COVERAGE=ON
23
    - make -j2 | tee ../chameleon-build-starpu.log
24
    - make install | tee -a ../chameleon-build-starpu.log && rm install/ -r
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

build_starpu_simgrid:
  stage: build
  artifacts:
    name: starpu_simgrid_build
    expire_in: 48 hours
    paths:
      - build
      - chameleon-build-starpu-simgrid.log
  script:
    - source .gitlab-ci-env.sh simu
    - git submodule update --init --recursive
    - mkdir -p build
    - cd build
    - cmake .. -DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF -DCMAKE_INSTALL_PREFIX=${PWD}/install -DCMAKE_VERBOSE_MAKEFILE=ON -DMORSE_ENABLE_WARNING=ON -DMORSE_ENABLE_COVERAGE=ON
40
    - make -j2 | tee ../chameleon-build-starpu-simgrid.log
41
    - make install | tee -a ../chameleon-build-starpu-simgrid.log && rm install/ -r
42

PRUVOST Florent's avatar
PRUVOST Florent committed
43 44 45 46
build_quark:
  stage: build
  artifacts:
    name: quark_build
PRUVOST Florent's avatar
PRUVOST Florent committed
47
    expire_in: 48 hours
PRUVOST Florent's avatar
PRUVOST Florent committed
48 49
    paths:
      - build
50
      - chameleon-build-quark.log
PRUVOST Florent's avatar
PRUVOST Florent committed
51 52 53 54 55 56
  script:
    - source .gitlab-ci-env.sh
    - git submodule update --init --recursive
    - mkdir -p build
    - cd build
    - cmake .. -DCMAKE_INSTALL_PREFIX=${PWD}/install -DCMAKE_VERBOSE_MAKEFILE=ON -DMORSE_ENABLE_WARNING=ON -DMORSE_ENABLE_COVERAGE=ON -DCHAMELEON_SCHED_QUARK=ON
57
    - make -j2 | tee ../chameleon-build-quark.log
58
    - make install | tee -a ../chameleon-build-quark.log && rm install/ -r
PRUVOST Florent's avatar
PRUVOST Florent committed
59

60
test_starpu_mpi:
61 62
  stage: test
  dependencies:
63
    - build_starpu_cuda_mpi
PRUVOST Florent's avatar
PRUVOST Florent committed
64
  artifacts:
65
    name: starpu_mpi_test
PRUVOST Florent's avatar
PRUVOST Florent committed
66
    expire_in: 48 hours
PRUVOST Florent's avatar
PRUVOST Florent committed
67
    paths:
68
      - chameleon_starpu_mpi.lcov
69 70 71
  script:
    - source .gitlab-ci-env.sh
    - git submodule update --init --recursive
72
    - (cd build && STARPU_SILENT=1 ctest --no-compress-output -R test_shm_s || /usr/bin/true && ctest --no-compress-output -R mpi_s || /usr/bin/true)
73
    - lcov --directory build --capture --output-file chameleon_starpu_mpi.lcov
PRUVOST Florent's avatar
PRUVOST Florent committed
74

75 76 77 78 79
test_starpu_simgrid:
  stage: test
  dependencies:
    - build_starpu_simgrid
  artifacts:
80
    name: starpu_simgrid_test
81 82
    expire_in: 48 hours
    paths:
83
      - chameleon_starpu_simgrid.lcov
84 85 86 87
  script:
    - source .gitlab-ci-env.sh simu
    - git submodule update --init --recursive
    - (cd build && STARPU_SILENT=1 ctest --no-compress-output -V || /usr/bin/true)
88
    - lcov --directory build --capture --output-file chameleon_starpu_simgrid.lcov
89

PRUVOST Florent's avatar
PRUVOST Florent committed
90 91 92 93 94
test_quark:
  stage: test
  dependencies:
    - build_quark
  artifacts:
95
    name: quark_test
PRUVOST Florent's avatar
PRUVOST Florent committed
96
    expire_in: 48 hours
PRUVOST Florent's avatar
PRUVOST Florent committed
97
    paths:
98
      - chameleon_quark.lcov
PRUVOST Florent's avatar
PRUVOST Florent committed
99 100 101 102
  script:
    - source .gitlab-ci-env.sh
    - git submodule update --init --recursive
    - (cd build && ctest --no-compress-output -R test_shm_s)
103
    - lcov --directory build --capture --output-file chameleon_quark.lcov
PRUVOST Florent's avatar
PRUVOST Florent committed
104

105 106 107
sonar:
  stage: analysis
  dependencies:
108
    - build_starpu_cuda_mpi
109
    - build_starpu_simgrid
PRUVOST Florent's avatar
PRUVOST Florent committed
110
    - build_quark
PRUVOST Florent's avatar
PRUVOST Florent committed
111
    - test_starpu_mpi
112
    - test_starpu_simgrid
PRUVOST Florent's avatar
PRUVOST Florent committed
113
    - test_quark
PRUVOST Florent's avatar
PRUVOST Florent committed
114 115 116 117 118 119 120 121 122 123 124
  artifacts:
    name: chameleon_analysis
    expire_in: 1 week
    paths:
      - chameleon-build.log
      - chameleon-coverage.xml
      - chameleon-cppcheck.xml
      - chameleon-rats.xml
      - sonar.log
  script:
    - source .gitlab-ci-env.sh
125
    - lcov -a $PWD/chameleon_starpu_mpi.lcov -a $PWD/chameleon_starpu_simgrid.lcov -a $PWD/chameleon_quark.lcov -o $PWD/chameleon.lcov
126
    - lcov_cobertura.py chameleon.lcov --output chameleon-coverage.xml
PRUVOST Florent's avatar
PRUVOST Florent committed
127
    - ./tools/analysis.sh
128
  only:
129
    - master@solverstack/chameleon
130

131
doc:
132
  stage: doc
133 134 135 136 137 138 139 140 141 142 143
  artifacts:
    name: chameleon_doc
    expire_in: 1 week
    paths:
      - build/doc/doxygen
      - build/doc/orgmode
  script:
    - source .gitlab-ci-env.sh
    - git submodule update --init --recursive
    - mkdir -p build
    - cd build
144
    - cmake .. -DCHAMELEON_ENABLE_DOC=ON
145
    - make doc
146
  only:
147
    - master@solverstack/chameleon
148