.gitlab-ci.yml 7.53 KB
Newer Older
1 2 3 4
include:
    # Metadata shared my many jobs
    - local: .gitlab/rules.yml
    - local: .gitlab/artifacts.yml
5

6 7 8 9
    # OS builds.
    - local: .gitlab/os-linux.yml
    - local: .gitlab/os-macos.yml
    - local: .gitlab/os-windows.yml
10

11 12 13
    # Post-build steps
    - local: .gitlab/upload.yml

14
stages:
15
    - prep
16 17
    - build
    - test
18
    - test-ext
19
    - upload
20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
################################################################################
# Job declarations
#
# Each job must pull in each of the following keys:
#
#   - a "base image"
#   - a build script
#   - tags for the jobs
#   - rules for when to run the job
#
# Additionally, jobs may also contain:
#
#   - artifacts
#   - dependency/needs jobs for required jobs
################################################################################

37 38
# Prep jobs

39
prep:source-package:
40 41 42 43 44 45 46
    extends:
        - .linux_prep_source
        - .cmake_prep_source_linux
        - .linux_builder_tags
        - .cmake_release_artifacts
        - .run_only_for_package

47
prep:doc-package:
48
    extends:
49
        - .fedora33_sphinx_package
50 51 52 53 54
        - .cmake_prep_doc_linux
        - .linux_builder_tags_qt
        - .cmake_doc_artifacts
        - .run_only_for_package

Brad King's avatar
Brad King committed
55
upload:source-package:
56 57 58 59
    extends:
        - .rsync_upload
        - .run_only_for_package
    dependencies:
60
        - prep:source-package
61
    needs:
62
        - prep:source-package
63 64 65
    variables:
        RSYNC_DESTINATION: dev

66 67
# Lint builds

Ben Boeckel's avatar
Ben Boeckel committed
68
build:debian10-iwyu:
Ben Boeckel's avatar
Ben Boeckel committed
69 70
    extends:
        - .debian10_iwyu
71
        - .cmake_build_linux
Ben Boeckel's avatar
Ben Boeckel committed
72 73
        - .linux_builder_tags
        - .run_automatically
Ben Boeckel's avatar
Ben Boeckel committed
74

75
build:fedora33-tidy:
Ben Boeckel's avatar
Ben Boeckel committed
76
    extends:
77
        - .fedora33_tidy
78
        - .cmake_build_linux
Ben Boeckel's avatar
Ben Boeckel committed
79 80
        - .linux_builder_tags_qt
        - .run_automatically
Ben Boeckel's avatar
Ben Boeckel committed
81

82
build:fedora33-sphinx:
Ben Boeckel's avatar
Ben Boeckel committed
83
    extends:
84
        - .fedora33_sphinx
85
        - .cmake_build_linux
Ben Boeckel's avatar
Ben Boeckel committed
86 87
        - .linux_builder_tags_qt
        - .run_automatically
88 89 90
    variables:
        CMAKE_CI_JOB_CONTINUOUS: "true"
        CMAKE_CI_JOB_HELP: "true"
91

92 93
# Linux builds

94
build:centos6-release:
Ben Boeckel's avatar
Ben Boeckel committed
95 96 97 98 99 100
    extends:
        - .release_linux
        - .cmake_build_release_linux
        - .cmake_release_artifacts
        - .linux_builder_tags
        - .run_manually
101

102 103 104 105 106 107 108 109 110 111 112
test:debian10-ninja:
    extends:
        - .debian10_ninja
        - .cmake_test_linux_package
        - .linux_builder_tags_qt
        - .run_dependent
    dependencies:
        - build:centos6-release
    needs:
        - build:centos6-release

113
test:fedora33-makefiles:
Ben Boeckel's avatar
Ben Boeckel committed
114
    extends:
115
        - .fedora33_makefiles
Ben Boeckel's avatar
Ben Boeckel committed
116 117
        - .cmake_test_linux_package
        - .linux_builder_tags_qt
118
        - .run_dependent
119 120 121 122 123
    dependencies:
        - build:centos6-release
    needs:
        - build:centos6-release

124
test:cuda10.2-nvidia:
Ben Boeckel's avatar
Ben Boeckel committed
125 126 127 128
    extends:
        - .cuda10.2_nvidia
        - .cmake_test_linux_package
        - .linux_builder_tags_cuda
129
        - .run_dependent
130 131 132 133 134
    dependencies:
        - build:centos6-release
    needs:
        - build:centos6-release

135
build:fedora33-ninja:
Ben Boeckel's avatar
Ben Boeckel committed
136
    extends:
137
        - .fedora33_ninja
138
        - .cmake_build_linux
Ben Boeckel's avatar
Ben Boeckel committed
139 140 141
        - .cmake_build_artifacts
        - .linux_builder_tags_qt
        - .run_manually
142

143
test:fedora33-ninja:
Ben Boeckel's avatar
Ben Boeckel committed
144
    extends:
145
        - .fedora33_ninja
146
        - .cmake_test_linux
147
        - .linux_builder_tags_x11
Ben Boeckel's avatar
Ben Boeckel committed
148
        - .cmake_test_artifacts
149
        - .run_dependent
150
    dependencies:
151
        - build:fedora33-ninja
152
    needs:
153
        - build:fedora33-ninja
154

155
test:fedora33-ninja-multi:
Ben Boeckel's avatar
Ben Boeckel committed
156
    extends:
157
        - .fedora33_ninja_multi
Ben Boeckel's avatar
Ben Boeckel committed
158 159
        - .cmake_test_linux_external
        - .linux_builder_tags_qt
160
        - .run_dependent
161
    dependencies:
162
        - test:fedora33-ninja
163
    needs:
164
        - test:fedora33-ninja
165

166 167 168 169 170 171 172 173 174 175 176 177
build:linux-x86_64-package:
    extends:
        - .linux_package_x86_64
        - .cmake_build_linux_package
        - .cmake_release_artifacts
        - .linux_builder_tags
        - .run_only_for_package
    dependencies:
        - prep:doc-package
    needs:
        - prep:doc-package

Brad King's avatar
Brad King committed
178
upload:linux-x86_64-package:
179 180 181 182 183 184 185 186 187 188
    extends:
        - .rsync_upload
        - .run_only_for_package
    dependencies:
        - build:linux-x86_64-package
    needs:
        - build:linux-x86_64-package
    variables:
        RSYNC_DESTINATION: dev

189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
build:linux-aarch64-package:
    extends:
        - .linux_package_aarch64
        - .cmake_build_linux_package
        - .cmake_release_artifacts
        - .linux_builder_tags_aarch64
        - .run_only_for_package
    dependencies:
        - prep:doc-package
    needs:
        - prep:doc-package

upload:linux-aarch64-package:
    extends:
        - .rsync_upload
        - .run_only_for_package
    dependencies:
        - build:linux-aarch64-package
    needs:
        - build:linux-aarch64-package
    variables:
        RSYNC_DESTINATION: dev

212 213
# macOS builds

Ben Boeckel's avatar
Ben Boeckel committed
214
build:macos-ninja:
Ben Boeckel's avatar
Ben Boeckel committed
215 216
    extends:
        - .macos_ninja
217
        - .cmake_build_macos
Ben Boeckel's avatar
Ben Boeckel committed
218 219 220
        - .cmake_build_artifacts
        - .macos_builder_tags
        - .run_manually
Ben Boeckel's avatar
Ben Boeckel committed
221 222

test:macos-ninja:
Ben Boeckel's avatar
Ben Boeckel committed
223 224
    extends:
        - .macos_ninja
225
        - .cmake_test_macos
Ben Boeckel's avatar
Ben Boeckel committed
226 227
        - .cmake_test_artifacts
        - .macos_builder_tags
228
        - .run_dependent
Ben Boeckel's avatar
Ben Boeckel committed
229 230 231 232 233 234
    dependencies:
        - build:macos-ninja
    needs:
        - build:macos-ninja

build:macos-makefiles:
Ben Boeckel's avatar
Ben Boeckel committed
235 236
    extends:
        - .macos_makefiles
237
        - .cmake_build_macos
Ben Boeckel's avatar
Ben Boeckel committed
238 239 240
        - .cmake_build_artifacts
        - .macos_builder_tags
        - .run_manually
Ben Boeckel's avatar
Ben Boeckel committed
241 242

test:macos-makefiles:
Ben Boeckel's avatar
Ben Boeckel committed
243 244
    extends:
        - .macos_makefiles
245
        - .cmake_test_macos
Ben Boeckel's avatar
Ben Boeckel committed
246
        - .macos_builder_tags
247
        - .run_dependent
Ben Boeckel's avatar
Ben Boeckel committed
248 249 250 251
    dependencies:
        - build:macos-makefiles
    needs:
        - build:macos-makefiles
Ben Boeckel's avatar
Ben Boeckel committed
252

Ben Boeckel's avatar
Ben Boeckel committed
253
test:macos-xcode:
Ben Boeckel's avatar
Ben Boeckel committed
254 255 256 257
    extends:
        - .macos_xcode
        - .cmake_test_macos_external
        - .macos_builder_ext_tags
258
        - .run_dependent
Ben Boeckel's avatar
Ben Boeckel committed
259 260 261 262 263
    dependencies:
        - test:macos-ninja
    needs:
        - test:macos-ninja

264
build:macos-package:
265 266 267 268 269 270 271
    extends:
        - .macos_package
        - .cmake_build_macos_package
        - .cmake_release_artifacts
        - .macos_builder_tags_package
        - .run_only_for_package
    dependencies:
272
        - prep:doc-package
273
    needs:
274
        - prep:doc-package
275

Brad King's avatar
Brad King committed
276
upload:macos-package:
277 278 279 280
    extends:
        - .rsync_upload
        - .run_only_for_package
    dependencies:
281
        - build:macos-package
282
    needs:
283
        - build:macos-package
284 285 286
    variables:
        RSYNC_DESTINATION: dev

287 288 289 290 291 292 293 294 295 296 297 298
build:macos10.10-package:
    extends:
        - .macos10.10_package
        - .cmake_build_macos_package
        - .cmake_release_artifacts
        - .macos_builder_tags_package
        - .run_only_for_package
    dependencies:
        - prep:doc-package
    needs:
        - prep:doc-package

299 300 301 302 303 304 305 306 307 308 309
upload:macos10.10-package:
    extends:
        - .rsync_upload
        - .run_only_for_package
    dependencies:
        - build:macos10.10-package
    needs:
        - build:macos10.10-package
    variables:
        RSYNC_DESTINATION: dev

310 311
# Windows builds

Ben Boeckel's avatar
Ben Boeckel committed
312
build:windows-vs2019-x64-ninja:
Ben Boeckel's avatar
Ben Boeckel committed
313 314 315 316 317 318
    extends:
        - .windows_vs2019_x64_ninja
        - .cmake_build_windows
        - .cmake_build_artifacts
        - .windows_builder_tags
        - .run_manually
Ben Boeckel's avatar
Ben Boeckel committed
319 320

test:windows-vs2019-x64-ninja:
Ben Boeckel's avatar
Ben Boeckel committed
321 322 323 324 325
    extends:
        - .windows_vs2019_x64_ninja
        - .cmake_test_windows
        - .windows_builder_tags
        - .cmake_test_artifacts
326
        - .run_dependent
Ben Boeckel's avatar
Ben Boeckel committed
327 328 329 330
    dependencies:
        - build:windows-vs2019-x64-ninja
    needs:
        - build:windows-vs2019-x64-ninja
331 332

test:windows-vs2019-x64:
Ben Boeckel's avatar
Ben Boeckel committed
333 334 335 336
    extends:
        - .windows_vs2019_x64
        - .cmake_test_windows_external
        - .windows_builder_ext_tags
337
        - .run_dependent
338 339 340 341
    dependencies:
        - test:windows-vs2019-x64-ninja
    needs:
        - test:windows-vs2019-x64-ninja