-
Notifications
You must be signed in to change notification settings - Fork 8
/
.gitlab-ci.yml
81 lines (73 loc) · 2.76 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
---
variables:
# Suitesparse, as installed with Debian, is thread-parallel using OpenMP.
# OpenMP silently assumes, it can spawn as many threads as there are cores.
# In a worst case scenario, this leads to a number of threads quadratic in
# the core count, if you also do parallel test execution with the maximum
# number of cores. We solve the issue by disallowing OpenMP to allocate more
# than one thread.
OMP_NUM_THREADS: 1
DUNECI_PARALLEL: 4
include:
- project: 'core/ci-config'
ref: master
file: 'config/common/master.yml'
- project: 'core/ci-config'
ref: master
file: 'jobs/common/master.yml'
.dune_setup: &dune_setup |-
. /duneci/bin/duneci-init-job
duneci-install-module https://gitlab.dune-project.org/core/dune-common.git
duneci-install-module https://gitlab.dune-project.org/core/dune-geometry.git
duneci-install-module https://gitlab.dune-project.org/core/dune-localfunctions.git
duneci-install-module https://gitlab.dune-project.org/staging/dune-uggrid.git
duneci-install-module https://gitlab.dune-project.org/core/dune-grid.git
duneci-install-module https://gitlab.dune-project.org/extensions/dune-alugrid.git
duneci-install-module https://gitlab.dune-project.org/core/dune-istl.git
duneci-install-module https://gitlab.dune-project.org/staging/dune-typetree.git
duneci-install-module https://gitlab.dune-project.org/staging/dune-functions.git
duneci-install-module https://gitlab.dune-project.org/extensions/dune-multidomaingrid.git
before_script:
- *dune_setup
# test tutorials as well
pdelab-tutorials:
stage: downstream
trigger:
project: pdelab/dune-pdelab-tutorials
strategy: depend
rules:
- when: manual
# allow_failure: true
debian:11 gcc-10-20:
extends: .common
image: registry.dune-project.org/docker/ci/debian:11
before_script:
- *dune_setup
- echo "CMAKE_FLAGS+=' -DCOVERAGE_REPORT=ON' " >> /duneci/cmake-flags/overage.opts
after_script:
- gcovr $GCOVR_OPTS $CI_PROJECT_DIR/build-cmake
variables:
# Create a coverage report
#
# Notes:
# - Only works for gcc
# - The gcov executable needs to match the version of the gcc toolchain
GCOVR_OPTS:
--gcov-executable gcov-10
--root $CI_PROJECT_DIR
--exclude $CI_PROJECT_DIR/dune/pdelab/test
--exclude $CI_PROJECT_DIR/build-cmake
--exclude-unreachable-branches
--xml-pretty
--print-summary
--output $CI_PROJECT_DIR/coverage.xml
DUNECI_TOOLCHAIN: gcc-10-20
artifacts:
reports:
junit: junit/*.xml
coverage_report:
coverage_format: cobertura
path: coverage.xml
# gcovr reports results (`--print-summary` option above). With this line we extract the
# result (% of covered lines) to report them in gitlab
coverage: /^\s*lines:\s*\d+.\d+\%/