-
Notifications
You must be signed in to change notification settings - Fork 1
/
.gitlab-ci.yml
127 lines (110 loc) · 2.51 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
default:
tags:
- docker
stages:
- build
- test
.build_template: &build_definition
stage: build
script:
- export CCACHE_BASEDIR=$(pwd)
- export CCACHE_DIR=$(pwd)/.cache/
- export CXXFLAGS='-fdiagnostics-color --coverage -fuse-ld=mold'
- export pybind11_DIR=$(pybind11-config --cmakedir)
- cmake . -B build/
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_CXX_COMPILER_LAUNCHER=/usr/bin/ccache
-DCMAKE_MODULE_LINKER_FLAGS_DEBUG=-ltbb
-DCMAKE_REQUIRE_FIND_PACKAGE_pybind11=ON
-GNinja
- cmake --build build/
cache:
key: "$CI_PROJECT_ID"
paths:
- .cache/
artifacts:
untracked: true
.test_template: &test_definition
stage: test
script:
# Run unit tests
- ctest --test-dir build/
-C Debug -j$(nproc)
--output-on-failure
--output-junit ctest.xml
after_script:
# Run coverage
- cd build/
- mkdir coverage
- gcovr -r .. . -s
--html -o coverage/report.html
--xml coverage.xml
coverage: '/lines:\s+(\d+\.\d+|\d+)%/'
artifacts:
when: always
paths:
- build/coverage
reports:
coverage_report:
coverage_format: cobertura
path: build/coverage.xml
junit: build/ctest.xml
.lint_template: &lint_definition
stage: test
allow_failure: true
script:
- autopep8 --exit-code --diff -r .
- flake8 .
- isort --check-only --diff .
build:python3.10:
image: sergiud/hogpp:python3.10
<<: *build_definition
test:python3.10:
image: sergiud/hogpp:python3.10
<<: *test_definition
needs:
- build:python3.10
lint:python3.10:
image: sergiud/hogpp:python3.10
<<: *lint_definition
needs:
- build:python3.10
build:python3.11:
image: sergiud/hogpp:python3.11
<<: *build_definition
test:python3.11:
image: sergiud/hogpp:python3.11
<<: *test_definition
needs:
- build:python3.11
lint:python3.11:
image: sergiud/hogpp:python3.11
<<: *lint_definition
needs:
- build:python3.11
build:python3.12:
image: sergiud/hogpp:python3.12
<<: *build_definition
test:python3.12:
image: sergiud/hogpp:python3.12
<<: *test_definition
needs:
- build:python3.12
lint:python3.12:
image: sergiud/hogpp:python3.12
<<: *lint_definition
needs:
- build:python3.12
build:python3.13:
image: sergiud/hogpp:python3.13
<<: *build_definition
test:python3.13:
image: sergiud/hogpp:python3.13
<<: *test_definition
needs:
- build:python3.13
lint:python3.13:
image: sergiud/hogpp:python3.13
<<: *lint_definition
needs:
- build:python3.13