os-linux.yml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947
  1. # Linux-specific builder configurations and build commands
  2. ## Base images
  3. ### Release
  4. .linux_prep_source:
  5. image: "fedora:43"
  6. variables:
  7. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  8. .linux_release_x86_64:
  9. image: "kitware/cmake:build-linux-x86_64-deps-2023-08-16@sha256:aa0ebdbd90a51cc83d31f393c5c48ec4599a28f7ccdc288558522c6265b24fae"
  10. variables:
  11. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  12. LAUNCHER: "scl enable devtoolset-7 --"
  13. CMAKE_ARCH: x86_64
  14. .linux_release_aarch64:
  15. image: "kitware/cmake:build-linux-aarch64-deps-2020-12-21@sha256:0bd7dfe4e45593b04e39cd21e44011034610cfd376900558c5ef959bb1af15af"
  16. variables:
  17. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  18. LAUNCHER: "scl enable devtoolset-7 --"
  19. CMAKE_ARCH: aarch64
  20. .linux_package:
  21. variables:
  22. BOOTSTRAP_ARGS: '-- "-DCMake_DOC_ARTIFACT_PREFIX=$CI_PROJECT_DIR/build/install-doc"'
  23. .sunos_release_x86_64:
  24. image: "kitware/cmake:build-sunos-x86_64-deps-2025-02-27"
  25. variables:
  26. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  27. CMAKE_ARCH: x86_64
  28. .sunos_release_sparc64:
  29. image: "kitware/cmake:build-sunos-sparc64-deps-2025-02-27"
  30. variables:
  31. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  32. CMAKE_ARCH: sparc64
  33. .sunos_package:
  34. variables:
  35. CMake_DOC_ARTIFACT_PREFIX: "$CI_PROJECT_DIR/build/install-doc"
  36. .needs_centos7_x86_64:
  37. needs:
  38. - b:centos7-x86_64
  39. .needs_centos7_aarch64:
  40. needs:
  41. - b:centos7-aarch64
  42. ### Debian
  43. .debian13:
  44. image: "kitware/cmake:ci-debian13-x86_64-2025-11-11"
  45. variables:
  46. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  47. CMAKE_ARCH: x86_64
  48. .debian13_iwyu:
  49. extends: .debian13
  50. variables:
  51. CMAKE_CONFIGURATION: debian13_iwyu
  52. CTEST_NO_WARNINGS_ALLOWED: 1
  53. CMAKE_CI_NO_INSTALL: 1
  54. .debian13_aarch64:
  55. image: "kitware/cmake:ci-debian13-aarch64-2025-11-11"
  56. variables:
  57. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  58. CMAKE_ARCH: aarch64
  59. ### Fedora
  60. .fedora43:
  61. image: "kitware/cmake:ci-fedora43-x86_64-2025-11-06"
  62. variables:
  63. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes"
  64. CMAKE_ARCH: x86_64
  65. .fedora43_hip:
  66. image: "kitware/cmake:ci-fedora43-hip-x86_64-2025-10-29"
  67. variables:
  68. # FIXME(rocclr): device modules fail loading from binaries in paths with spaces
  69. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci"
  70. CMAKE_ARCH: x86_64
  71. #### Coverage builds
  72. .fedora43_gcc_gcov:
  73. extends: .fedora43
  74. variables:
  75. # See issue #20001
  76. CMAKE_GENERATOR: "Unix Makefiles"
  77. CMAKE_CONFIGURATION: fedora43_gcc_gcov
  78. CTEST_NO_WARNINGS_ALLOWED: 1
  79. CMAKE_CI_BUILD_TYPE: Debug
  80. CMAKE_CI_TEST_TIMEOUT: "1500"
  81. CMAKE_CI_NO_INSTALL: 1
  82. .fedora43_bullseye_coverage:
  83. extends: .fedora43
  84. environment:
  85. name: bullseye-coverage
  86. variables:
  87. # See issue #20001
  88. CMAKE_GENERATOR: "Unix Makefiles"
  89. CMAKE_CONFIGURATION: fedora43_bullseye_coverage
  90. CTEST_NO_WARNINGS_ALLOWED: 1
  91. CMAKE_CI_BUILD_TYPE: Debug
  92. CMAKE_CI_TEST_TIMEOUT: "1500"
  93. CMAKE_CI_NO_INSTALL: 1
  94. #### Lint builds
  95. .fedora43_tidy:
  96. extends: .fedora43
  97. variables:
  98. CMAKE_CONFIGURATION: fedora43_tidy
  99. CMAKE_CI_NO_INSTALL: 1
  100. .fedora43_clang_analyzer:
  101. extends: .fedora43
  102. variables:
  103. CMAKE_CONFIGURATION: fedora43_clang_analyzer
  104. CMAKE_CI_BUILD_TYPE: Debug
  105. CTEST_NO_WARNINGS_ALLOWED: 1
  106. CMAKE_CI_NO_INSTALL: 1
  107. .fedora43_clazy:
  108. extends: .fedora43
  109. variables:
  110. CMAKE_CONFIGURATION: fedora43_clazy
  111. CMAKE_CI_BUILD_TYPE: Debug
  112. CTEST_NO_WARNINGS_ALLOWED: 1
  113. CMAKE_CI_NO_INSTALL: 1
  114. .fedora43_sphinx:
  115. extends: .fedora43
  116. variables:
  117. CMAKE_CONFIGURATION: fedora43_sphinx
  118. CTEST_NO_WARNINGS_ALLOWED: 1
  119. CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
  120. CMAKE_CI_NO_INSTALL: 1
  121. .fedora43_sphinx_package:
  122. extends: .fedora43
  123. variables:
  124. CMAKE_CONFIGURATION: fedora43_sphinx_package
  125. CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
  126. #### Build and test
  127. .debian13_ninja:
  128. extends: .debian13
  129. variables:
  130. CMAKE_CONFIGURATION: debian13_ninja
  131. CTEST_NO_WARNINGS_ALLOWED: 1
  132. .debian13_aarch64_ninja:
  133. extends: .debian13_aarch64
  134. variables:
  135. CMAKE_CONFIGURATION: debian13_aarch64_ninja
  136. CTEST_NO_WARNINGS_ALLOWED: 1
  137. .debian13_makefiles_inplace:
  138. extends: .debian13
  139. variables:
  140. CMAKE_CONFIGURATION: debian13_makefiles_inplace
  141. CMAKE_GENERATOR: "Unix Makefiles"
  142. CMAKE_CI_BOOTSTRAP: 1
  143. CMAKE_CI_INPLACE: 1
  144. CMAKE_CI_NO_INSTALL: 1
  145. CTEST_NO_WARNINGS_ALLOWED: 1
  146. .debian13_ninja_multi_symlinked:
  147. extends: .debian13
  148. variables:
  149. CMAKE_CONFIGURATION: debian13_ninja_multi_symlinked
  150. CMAKE_GENERATOR: "Ninja Multi-Config"
  151. CTEST_NO_WARNINGS_ALLOWED: 1
  152. CMAKE_CI_IN_SYMLINK_TREE: 1
  153. CMAKE_CI_BUILD_DIR: "real_work/work/build"
  154. .debian13_extdeps:
  155. extends: .debian13
  156. variables:
  157. CMAKE_CONFIGURATION: debian13_extdeps
  158. CMAKE_CI_BUILD_TYPE: Release
  159. CTEST_NO_WARNINGS_ALLOWED: 1
  160. .debian13_aarch64_extdeps:
  161. extends: .debian13_aarch64
  162. variables:
  163. CMAKE_CONFIGURATION: debian13_aarch64_extdeps
  164. CMAKE_CI_BUILD_TYPE: Release
  165. CTEST_NO_WARNINGS_ALLOWED: 1
  166. .fedora43_extdeps:
  167. extends: .fedora43
  168. variables:
  169. CMAKE_CONFIGURATION: fedora43_extdeps
  170. CMAKE_CI_BUILD_TYPE: Release
  171. CTEST_NO_WARNINGS_ALLOWED: 1
  172. .fedora43_ninja:
  173. extends: .fedora43
  174. variables:
  175. CMAKE_CONFIGURATION: fedora43_ninja
  176. CMAKE_CI_BUILD_TYPE: Release
  177. CTEST_NO_WARNINGS_ALLOWED: 1
  178. .fedora43_ninja_multi:
  179. extends: .fedora43
  180. variables:
  181. CMAKE_CONFIGURATION: fedora43_ninja_multi
  182. CTEST_NO_WARNINGS_ALLOWED: 1
  183. CMAKE_GENERATOR: "Ninja Multi-Config"
  184. .fedora43_makefiles:
  185. extends: .fedora43
  186. variables:
  187. CMAKE_CONFIGURATION: fedora43_makefiles
  188. CTEST_NO_WARNINGS_ALLOWED: 1
  189. CMAKE_GENERATOR: "Unix Makefiles"
  190. .fedora43_makefiles_symlinked:
  191. extends: .fedora43
  192. variables:
  193. CMAKE_CONFIGURATION: fedora43_makefiles_symlinked
  194. CTEST_NO_WARNINGS_ALLOWED: 1
  195. CMAKE_GENERATOR: "Unix Makefiles"
  196. CMAKE_CI_IN_SYMLINK_TREE: 1
  197. CMAKE_CI_BUILD_DIR: "real_work/work/build"
  198. .fedora43_fastbuild:
  199. extends: .fedora43
  200. variables:
  201. CMAKE_CONFIGURATION: fedora43_fastbuild
  202. CTEST_NO_WARNINGS_ALLOWED: 1
  203. CMAKE_GENERATOR: "FASTBuild"
  204. ### Clang Compiler
  205. .debian13_makefiles_clang:
  206. extends: .debian13
  207. variables:
  208. CMAKE_CONFIGURATION: debian13_makefiles_clang
  209. CMAKE_GENERATOR: "Unix Makefiles"
  210. .debian13_ninja_clang:
  211. extends: .debian13
  212. variables:
  213. CMAKE_CONFIGURATION: debian13_ninja_clang
  214. .fedora43_makefiles_clang:
  215. extends: .fedora43
  216. variables:
  217. CMAKE_CONFIGURATION: fedora43_makefiles_clang
  218. CMAKE_GENERATOR: "Unix Makefiles"
  219. .fedora43_makefiles_lfortran:
  220. extends: .fedora43
  221. variables:
  222. # FIXME(lfortran): -rpath flags with spaces not forwarded
  223. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci"
  224. CMAKE_CONFIGURATION: fedora43_makefiles_lfortran
  225. CMAKE_GENERATOR: "Unix Makefiles"
  226. CTEST_LABELS: "Fortran"
  227. .fedora43_ninja_lfortran:
  228. extends: .fedora43
  229. variables:
  230. # FIXME(lfortran): -rpath flags with spaces not forwarded
  231. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci"
  232. CMAKE_CONFIGURATION: fedora43_ninja_lfortran
  233. CTEST_LABELS: "Fortran"
  234. .fedora43_ninja_clang:
  235. extends: .fedora43
  236. variables:
  237. CMAKE_CONFIGURATION: fedora43_ninja_clang
  238. .fedora43_ninja_multi_clang:
  239. extends: .fedora43
  240. variables:
  241. CMAKE_CONFIGURATION: fedora43_ninja_multi_clang
  242. CMAKE_GENERATOR: "Ninja Multi-Config"
  243. ### Sanitizers
  244. .fedora_memcheck:
  245. variables:
  246. CMAKE_CI_BUILD_TYPE: RelWithDebInfo
  247. .fedora_asan_addon:
  248. extends: .fedora_memcheck
  249. variables:
  250. CTEST_MEMORYCHECK_TYPE: AddressSanitizer
  251. CTEST_MEMORYCHECK_SANITIZER_OPTIONS: ""
  252. .fedora_valgrind_addon:
  253. extends: .fedora_memcheck
  254. variables:
  255. CTEST_MEMORYCHECK_TYPE: Valgrind
  256. CMAKE_CI_RUN_MEMCHECK: "true"
  257. CMAKE_CI_TEST_TIMEOUT: "1500"
  258. CMAKE_VALGRIND_CONFIGURATION: fedora43
  259. .fedora43_asan:
  260. extends:
  261. - .fedora43
  262. - .fedora_asan_addon
  263. variables:
  264. CMAKE_CONFIGURATION: fedora43_asan
  265. .fedora43_ninja_valgrind:
  266. extends:
  267. - .fedora43
  268. - .fedora_valgrind_addon
  269. variables:
  270. CMAKE_CONFIGURATION: fedora43_ninja_valgrind
  271. ### Intel Compiler
  272. .intelcompiler:
  273. image: "kitware/intelcompiler:$CMAKE_CI_INTELCOMPILER_IMAGE_TAG"
  274. environment:
  275. name: intel-compiler
  276. variables:
  277. CMAKE_ARCH: x86_64
  278. .intelclassic_makefiles:
  279. extends: .intelcompiler
  280. variables:
  281. CMAKE_CONFIGURATION: intelclassic_makefiles
  282. CMAKE_GENERATOR: "Unix Makefiles"
  283. .inteloneapi_makefiles:
  284. extends: .intelcompiler
  285. variables:
  286. CMAKE_CONFIGURATION: inteloneapi_makefiles
  287. CMAKE_GENERATOR: "Unix Makefiles"
  288. ### NVHPC Compiler
  289. .nvhpc:
  290. image: "kitware/cmake:ci-nvhpc24.9-x86_64-2024-09-27"
  291. variables:
  292. CMAKE_ARCH: x86_64
  293. .nvhpc_ninja:
  294. extends: .nvhpc
  295. variables:
  296. CMAKE_CONFIGURATION: nvhpc_ninja
  297. ### CUDA builds
  298. .cuda:
  299. variables:
  300. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  301. CTEST_LABELS: "CUDA"
  302. CMAKE_CUDA_ARCHITECTURES_NATIVE_CLAMP: 1
  303. .cuda9.2:
  304. extends: .cuda
  305. image: "kitware/cmake:ci-cuda9.2-x86_64-2021-10-01"
  306. variables:
  307. CMAKE_ARCH: x86_64
  308. .cuda9.2_nvidia:
  309. extends: .cuda9.2
  310. variables:
  311. CMAKE_CONFIGURATION: cuda9.2_nvidia
  312. CMAKE_GENERATOR: "Ninja Multi-Config"
  313. .cuda10.2:
  314. extends: .cuda
  315. image: "kitware/cmake:ci-cuda10.2-x86_64-2021-06-16"
  316. variables:
  317. CMAKE_ARCH: x86_64
  318. .cuda10.2_nvidia:
  319. extends: .cuda10.2
  320. variables:
  321. CMAKE_CONFIGURATION: cuda10.2_nvidia
  322. CTEST_NO_WARNINGS_ALLOWED: 1
  323. .cuda10.2_clang:
  324. extends: .cuda10.2
  325. variables:
  326. CMAKE_CONFIGURATION: cuda10.2_clang
  327. CTEST_NO_WARNINGS_ALLOWED: 1
  328. .cuda11.6:
  329. extends: .cuda
  330. image: "kitware/cmake:ci-cuda11.6-x86_64-2022-02-28"
  331. variables:
  332. CMAKE_ARCH: x86_64
  333. .cuda11.6_nvidia:
  334. extends: .cuda11.6
  335. variables:
  336. CMAKE_CONFIGURATION: cuda11.6_nvidia
  337. CTEST_NO_WARNINGS_ALLOWED: 1
  338. .cuda11.6_clang:
  339. extends: .cuda11.6
  340. variables:
  341. CMAKE_CONFIGURATION: cuda11.6_clang
  342. CTEST_NO_WARNINGS_ALLOWED: 1
  343. .cuda11.8_minimal:
  344. extends: .cuda
  345. image: "kitware/cmake:ci-cuda11.8-minimal-x86_64-2022-12-06"
  346. variables:
  347. CMAKE_ARCH: x86_64
  348. .cuda11.8_minimal_nvidia:
  349. extends: .cuda11.8_minimal
  350. variables:
  351. CMAKE_CONFIGURATION: cuda11.8_minimal_nvidia
  352. CTEST_NO_WARNINGS_ALLOWED: 1
  353. .cuda11.8_splayed_nvidia:
  354. extends: .cuda11.8_minimal
  355. variables:
  356. CMAKE_CONFIGURATION: cuda11.8_splayed_nvidia
  357. CTEST_NO_WARNINGS_ALLOWED: 1
  358. .cuda12.2:
  359. extends: .cuda
  360. image: "kitware/cmake:ci-cuda12.2-x86_64-2024-09-25"
  361. variables:
  362. CMAKE_ARCH: x86_64
  363. .cuda12.2_nvidia:
  364. extends: .cuda12.2
  365. variables:
  366. CMAKE_CONFIGURATION: cuda12.2_nvidia
  367. CTEST_NO_WARNINGS_ALLOWED: 1
  368. .cuda12.2_clang:
  369. extends: .cuda12.2
  370. variables:
  371. CMAKE_CONFIGURATION: cuda12.2_clang
  372. CTEST_NO_WARNINGS_ALLOWED: 1
  373. .cuda12.6:
  374. extends: .cuda
  375. image: "kitware/cmake:ci-cuda12.6-x86_64-2025-01-30"
  376. variables:
  377. CMAKE_ARCH: x86_64
  378. .cuda12.6_nvidia:
  379. extends: .cuda12.6
  380. variables:
  381. CMAKE_CONFIGURATION: cuda12.6_nvidia
  382. CTEST_NO_WARNINGS_ALLOWED: 1
  383. .cuda12.6_nvidia_clang:
  384. extends: .cuda12.6
  385. variables:
  386. CMAKE_CONFIGURATION: cuda12.6_nvidia_clang
  387. CTEST_NO_WARNINGS_ALLOWED: 1
  388. .cuda12.6_clang:
  389. extends: .cuda12.6
  390. variables:
  391. CMAKE_CONFIGURATION: cuda12.6_clang
  392. CTEST_NO_WARNINGS_ALLOWED: 1
  393. .cuda13.0:
  394. extends: .cuda
  395. image: "kitware/cmake:ci-cuda13.0-x86_64-2025-10-20"
  396. variables:
  397. CMAKE_ARCH: x86_64
  398. .cuda13.0_nvidia:
  399. extends: .cuda13.0
  400. variables:
  401. CMAKE_CONFIGURATION: cuda13.0_nvidia
  402. CTEST_NO_WARNINGS_ALLOWED: 1
  403. .cuda13.0_nvidia_fastbuild:
  404. extends: .cuda13.0
  405. variables:
  406. CMAKE_CONFIGURATION: cuda13.0_nvidia_fastbuild
  407. CTEST_NO_WARNINGS_ALLOWED: 1
  408. CMAKE_GENERATOR: "FASTBuild"
  409. ### HIP builds
  410. .hip6.3:
  411. image: "kitware/cmake:ci-hip6.3-x86_64-2025-02-14"
  412. variables:
  413. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  414. CMAKE_ARCH: x86_64
  415. CTEST_LABELS: "HIP"
  416. .hip6.3_radeon:
  417. extends: .hip6.3
  418. variables:
  419. # FIXME(rocclr): device modules fail loading from binaries in paths with spaces
  420. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci"
  421. CMAKE_CONFIGURATION: hip6.3_radeon
  422. CMAKE_GENERATOR: "Ninja Multi-Config"
  423. .debian13_hip_radeon:
  424. extends: .debian13
  425. variables:
  426. CMAKE_CONFIGURATION: debian13_hip_radeon
  427. CTEST_LABELS: "HIP"
  428. .fedora43_hip_radeon:
  429. extends: .fedora43_hip
  430. variables:
  431. CMAKE_CONFIGURATION: fedora43_hip_radeon
  432. CTEST_LABELS: "HIP"
  433. .hip6.3_nvidia:
  434. extends: .hip6.3
  435. variables:
  436. CMAKE_CONFIGURATION: hip6.3_nvidia
  437. CTEST_LABELS: "HIP"
  438. ### C++ modules
  439. .gcc_cxx_modules_x86_64:
  440. image: "kitware/cmake:ci-gcc_cxx_modules-x86_64-2024-12-23"
  441. variables:
  442. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  443. CMAKE_ARCH: x86_64
  444. CC: "/opt/gcc-importstd/bin/gcc"
  445. CXX: "/opt/gcc-importstd/bin/g++"
  446. .gcc_cxx_modules_ninja:
  447. extends: .gcc_cxx_modules_x86_64
  448. variables:
  449. CMAKE_CONFIGURATION: linux_gcc_cxx_modules_ninja
  450. .gcc_cxx_modules_reloc_ninja:
  451. extends: .gcc_cxx_modules_x86_64
  452. variables:
  453. CMAKE_CONFIGURATION: linux_gcc_cxx_modules_reloc_ninja
  454. CTEST_LABELS: "CXXModules"
  455. .gcc_cxx_modules_ninja_multi:
  456. extends: .gcc_cxx_modules_x86_64
  457. variables:
  458. CMAKE_CONFIGURATION: linux_gcc_cxx_modules_ninja_multi
  459. CMAKE_GENERATOR: "Ninja Multi-Config"
  460. ### Debian 10 legacy packages
  461. .debian10:
  462. image: "kitware/cmake:ci-debian10-x86_64-2023-07-31"
  463. variables:
  464. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
  465. CMAKE_ARCH: x86_64
  466. .debian10_legacy:
  467. extends: .debian10
  468. variables:
  469. CMAKE_CONFIGURATION: debian10_legacy
  470. CTEST_LABELS: "Python2"
  471. ## Tags
  472. .linux_x86_64_tags:
  473. tags:
  474. - cmake
  475. - build
  476. - docker
  477. - linux-x86_64
  478. .linux_x86_64_v3_tags:
  479. tags:
  480. - cmake
  481. - build
  482. - docker
  483. - linux-x86_64-v3
  484. .linux_x86_64_tags_x11:
  485. tags:
  486. - cmake
  487. - docker
  488. - linux-x86_64
  489. - x11
  490. .linux_x86_64_tags_fast_x11:
  491. tags:
  492. - cmake
  493. - docker
  494. - linux-x86_64-v4
  495. - x11
  496. .linux_x86_64_tags_cuda_arch_30:
  497. tags:
  498. - cmake
  499. - cuda-arch-30
  500. - docker
  501. - linux-x86_64
  502. .linux_x86_64_tags_cuda_arch_52:
  503. tags:
  504. - cmake
  505. - cuda-arch-52
  506. - docker
  507. - linux-x86_64
  508. .linux_x86_64_v3_tags_cuda_arch_52:
  509. tags:
  510. - cmake
  511. - cuda-arch-52
  512. - docker
  513. - linux-x86_64-v3
  514. .linux_x86_64_tags_cuda_arch_75:
  515. tags:
  516. - cmake
  517. - cuda-arch-75
  518. - docker
  519. - linux-x86_64
  520. .linux_x86_64_tags_rocm5.7:
  521. tags:
  522. - cmake
  523. - radeon
  524. - rocm-5.7
  525. - docker
  526. - linux-x86_64
  527. .linux_x86_64_tags_rocm6.2:
  528. tags:
  529. - cmake
  530. - radeon
  531. - rocm-6.2
  532. - docker
  533. - linux-x86_64
  534. .linux_x86_64_tags_rocm6.3:
  535. tags:
  536. - cmake
  537. - radeon
  538. - rocm-6.3
  539. - docker
  540. - linux-x86_64
  541. .linux_aarch64_tags:
  542. tags:
  543. - cmake
  544. - build
  545. - docker
  546. - linux-aarch64
  547. ## Linux-specific scripts
  548. .before_script_linux: &before_script_linux
  549. - source .gitlab/ci/env.sh
  550. - source .gitlab/ci/cmake-env.sh
  551. - source .gitlab/ci/ninja-env.sh
  552. .cmake_prep_source_linux:
  553. stage: prep
  554. script:
  555. - *before_script_linux
  556. - dnf install --setopt=install_weak_deps=False -y git-core
  557. - v="$(.gitlab/ci/cmake_version.sh)"
  558. - mkdir -p build/
  559. - git archive --format=tgz --prefix="cmake-$v/" -o "build/cmake-$v.tar.gz" HEAD
  560. - git archive --format=zip --prefix="cmake-$v/" -o "build/cmake-$v.zip" HEAD
  561. interruptible: true
  562. .cmake_prep_doc_linux:
  563. stage: prep
  564. script:
  565. - *before_script_linux
  566. - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_configure.cmake"
  567. - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_build.cmake"
  568. interruptible: true
  569. .cmake_version_update_linux:
  570. stage: build
  571. extends: .fedora43
  572. script:
  573. - .gitlab/ci/cmake_version_update.sh
  574. interruptible: false # The job internally fetches and retries.
  575. .cmake_spellcheck_linux:
  576. stage: build
  577. extends: .fedora43
  578. script:
  579. - .gitlab/ci/codespell.bash
  580. - .gitlab/ci/typos.bash
  581. interruptible: true
  582. .cmake_build_linux:
  583. stage: build
  584. script:
  585. - *before_script_linux
  586. - .gitlab/ci/sccache.sh
  587. - sccache --start-server
  588. - sccache --show-stats
  589. - .gitlab/ci/pre_configure.sh
  590. - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_configure.cmake"
  591. - .gitlab/ci/pre_build.sh
  592. - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_build.cmake"
  593. - .gitlab/ci/post_build.sh
  594. - sccache --show-stats
  595. interruptible: true
  596. .cmake_test_linux:
  597. stage: test
  598. script:
  599. - *before_script_linux
  600. - .gitlab/ci/pre_test.sh
  601. - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_test.cmake"
  602. interruptible: true
  603. .cmake_memcheck_linux:
  604. stage: test
  605. script:
  606. - *before_script_linux
  607. - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_memcheck.cmake"
  608. interruptible: true
  609. .cmake_coverage_linux:
  610. stage: test
  611. script:
  612. - *before_script_linux
  613. - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_coverage.cmake"
  614. coverage: '/Percentage Coverage: \d+.\d+%/'
  615. interruptible: true
  616. .cmake_build_linux_release:
  617. stage: build
  618. script:
  619. - source .gitlab/ci/env.sh
  620. # Bootstrap.
  621. - mkdir -p build/
  622. - cp Utilities/Release/linux/$CMAKE_ARCH/cache.txt build/CMakeCache.txt
  623. # Make sccache available.
  624. - source .gitlab/ci/sccache-env.sh
  625. # Append sccache settings to the cache.
  626. - echo "CMAKE_C_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt
  627. - echo "CMAKE_CXX_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt
  628. # CI settings.
  629. - echo "CMake_TEST_INSTALL:BOOL=OFF" >> build/CMakeCache.txt
  630. - echo "CMAKE_INSTALL_PREFIX:PATH=$PWD/build/install" >> build/CMakeCache.txt
  631. - echo "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY:BOOL=ON" >> build/CMakeCache.txt
  632. # Appease Git. The Git in this container is old (1.7) and doesn't
  633. # understand some things. But, it doesn't need to, so make it blind.
  634. - mkdir -p .git/info
  635. - echo "* -crlf" >> .git/info/attributes
  636. - git reset --hard
  637. # Bootstrap
  638. - cd build/
  639. - '$LAUNCHER ../bootstrap --parallel=$(nproc) --docdir=doc/cmake $BOOTSTRAP_ARGS'
  640. # FIXME: When CTest can drive an external CMake for the build as well,
  641. # use the scripts here.
  642. - "$LAUNCHER make -j$(nproc)"
  643. # NOTE: This regex matches that used in the release build.
  644. - "$LAUNCHER bin/ctest --output-on-failure -j$(nproc) -R '^(CMake\\.|CMakeLib\\.|RunCMake\\.ctest_memcheck)'"
  645. # Make a package.
  646. - bin/cpack -G TGZ
  647. - bin/cpack -G STGZ
  648. - sccache --show-stats
  649. interruptible: true
  650. .cmake_build_linux_standalone:
  651. stage: build
  652. script:
  653. - *before_script_linux
  654. - .gitlab/ci/sccache.sh
  655. - sccache --start-server
  656. - sccache --show-stats
  657. - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake"
  658. - sccache --show-stats
  659. interruptible: true
  660. .cmake_test_linux_release:
  661. stage: test-ext
  662. script:
  663. - *before_script_linux
  664. # Make the CMake package available.
  665. - mkdir -p build/install
  666. - tar -C build/install --strip-components=1 -xzf build/cmake-*-linux-$CMAKE_ARCH.tar.gz
  667. - .gitlab/ci/sccache.sh
  668. - sccache --start-server
  669. - sccache --show-stats
  670. - "$LAUNCHER build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake"
  671. - sccache --show-stats
  672. interruptible: true
  673. .cmake_test_linux_external:
  674. stage: test-ext
  675. script:
  676. - *before_script_linux
  677. - .gitlab/ci/sccache.sh
  678. - sccache --start-server
  679. - sccache --show-stats
  680. - "$LAUNCHER build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake"
  681. - sccache --show-stats
  682. interruptible: true
  683. .cmake_test_linux_intelclassic_makefiles:
  684. extends:
  685. - .intelclassic_makefiles
  686. - .cmake_test_linux_release
  687. - .linux_x86_64_tags
  688. - .run_manually
  689. - .needs_centos7_x86_64
  690. variables:
  691. CMAKE_CI_JOB_NIGHTLY: "true"
  692. CMAKE_CI_NO_MR: "true"
  693. .cmake_test_linux_inteloneapi_makefiles:
  694. extends:
  695. - .inteloneapi_makefiles
  696. - .cmake_test_linux_release
  697. - .linux_x86_64_tags
  698. - .run_manually
  699. - .needs_centos7_x86_64
  700. variables:
  701. CMAKE_CI_JOB_NIGHTLY: "true"
  702. .cmake_build_sunos_release:
  703. stage: build
  704. script:
  705. - *before_script_linux
  706. # SunOS sysroot
  707. - Utilities/Release/sunos/docker/sysroot.bash $CMAKE_ARCH
  708. # Initial cache
  709. - mkdir -p build/
  710. - cp Utilities/Release/sunos/$CMAKE_ARCH/cache.txt build/CMakeCache.txt
  711. # Make sccache available.
  712. - source .gitlab/ci/sccache-env.sh
  713. - echo "CMAKE_C_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt
  714. - echo "CMAKE_CXX_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt
  715. # Build
  716. - cd build/
  717. - cmake .. -GNinja
  718. -DCMAKE_DOC_DIR=doc/cmake
  719. -DCMake_DOC_ARTIFACT_PREFIX="$CMake_DOC_ARTIFACT_PREFIX"
  720. -DCMAKE_TOOLCHAIN_FILE="$CI_PROJECT_DIR/Utilities/Release/sunos/$CMAKE_ARCH/toolchain.cmake"
  721. - ninja
  722. # Package
  723. - cpack -G "TGZ;STGZ"
  724. - sccache --show-stats
  725. interruptible: true
  726. ### Documentation
  727. .cmake_org_help:
  728. stage: build
  729. extends:
  730. - .fedora43
  731. - .linux_x86_64_tags
  732. - .cmake_org_help_artifacts
  733. script:
  734. - *before_script_linux
  735. - mkdir -p build/
  736. - cd build/
  737. - cmake ../Utilities/Sphinx -GNinja
  738. -DSPHINX_HTML=ON
  739. -DSPHINX_QTHELP=$CMAKE_CI_SPHINX_QTHELP
  740. -DCMake_SPHINX_CMAKE_ORG=ON
  741. -DCMake_SPHINX_CMAKE_ORG_OUTDATED=$CMAKE_CI_SPHINX_OUTDATED
  742. -DCMake_VERSION_NO_GIT=$CMAKE_CI_VERSION_NO_GIT
  743. - ninja