-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
127 lines (115 loc) · 3.47 KB
/
.gitlab-ci.yml
File metadata and controls
127 lines (115 loc) · 3.47 KB
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
image: jugit-registry.fz-juelich.de/ibg-1/modsim/moovie/moovie:test
stages:
- build
- test
- publish
build-cli:
stage: build
script:
- mkdir build-cli
- cd build-cli
- cmake .. -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_BUILD_TYPE=Debug -DBUILD_LIB=ON -DBUILD_GUI=OFF -DBUILD_TESTS=ON -DBUILD_DOCUMENTATION=OFF
- cmake --build . -j4
artifacts:
when: always
expire_in: 14 days
paths:
- build-cli
build-qt5:
stage: build
script:
- mkdir build-qt5
- cd build-qt5
- cmake .. -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_BUILD_TYPE=Release -DBUILD_LIB=ON -DBUILD_GUI=ON -DQT_VERSION=QT5 -DBUILD_TESTS=OFF -DBUILD_DOCUMENTATION=OFF
- cmake --build . -j4
artifacts:
when: always
expire_in: 14 days
build-qt6:
stage: build
script:
- mkdir build-qt6
- cd build-qt6
- cmake .. -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_BUILD_TYPE=Release -DBUILD_LIB=ON -DBUILD_GUI=ON -DQT_VERSION=QT6 -DBUILD_TESTS=OFF -DBUILD_DOCUMENTATION=OFF
- cmake --build . -j4
artifacts:
when: always
expire_in: 14 days
unit_test:
stage: test
script:
- cd build-cli
- ctest --extra-verbose
- gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml --root ${CI_PROJECT_DIR} --filter ${CI_PROJECT_DIR}/src/main/cpp/lib
- cd ..
coverage: /^\s*lines:\s*\d+.\d+\%/
artifacts:
when: always
expire_in: 14 days
reports:
junit:
- build-cli/src/test/report_configuration_test.xml
- build-cli/src/test/report_dataset_test.xml
- build-cli/src/test/report_storageelements_test.xml
- build-cli/src/test/report_coordinates_test.xml
- build-cli/src/test/report_graphicalelements_test.xml
- build-cli/src/test/report_utilities_test.xml
coverage_report:
coverage_format: cobertura
path: build-cli/coverage.xml
build-documentation:
image: sphinxdoc/sphinx:latest
stage: build
before_script:
- apt-get update -y
- apt-get install -y doxygen cmake
- pip install exhale myst-parser sphinx-book-theme
script:
- mkdir build-docs
- cd build-docs
- cmake .. -DCMAKE_PREFIX_PATH=/usr/local -DBUILD_LIB=OFF -DBUILD_DOCUMENTATION=ON
- make
artifacts:
paths:
- docs/build/html/*
expire_in: 1 week
build-container:
image: docker:stable
services:
- docker:dind
tags:
- docker
stage: publish
before_script:
- docker version
- docker info
- echo "logging in to $CI_REGISTRY"
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker build -t $CI_REGISTRY/ibg-1/modsim/moovie/moovie:$CI_COMMIT_REF_SLUG .
- docker push $CI_REGISTRY/ibg-1/modsim/moovie/moovie:$CI_COMMIT_REF_SLUG
after_script:
- docker logout $CI_REGISTRY
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_COMMIT_TAG != null
retag-container:
image: docker:stable
services:
- docker:dind
tags:
- docker
stage: publish
needs:
- build-container
before_script:
- docker version
- docker info
- echo "logging in to $CI_REGISTRY"
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker pull $CI_REGISTRY/ibg-1/modsim/moovie/moovie:$CI_COMMIT_REF_SLUG
- docker tag $CI_REGISTRY/ibg-1/modsim/moovie/moovie:$CI_COMMIT_REF_SLUG $CI_REGISTRY/ibg-1/modsim/moovie/moovie:latest
- docker push $CI_REGISTRY/ibg-1/modsim/moovie/moovie:latest
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH