| # Linux-specific builder configurations and build commands | |
| ## Base images | |
| ### Release | |
| .linux_prep_source: | |
| image: "fedora:44" | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" | |
| .linux_release_x86_64: | |
| image: "kitware/cmake:build-linux-x86_64-deps-2026-10-22@sha256:650889862a59c5a4053b01a54afce5006c7cbb2f64e9f1c34975477bee50cd52" | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" | |
| LAUNCHER: "scl enable devtoolset-7 --" | |
| CMAKE_ARCH: x86_64 | |
| .linux_release_aarch64: | |
| image: "kitware/cmake:build-linux-aarch64-deps-2026-10-22@sha256:89b7eec9fc7272d5b54a588d24400c87e61d9414b544c63b20a95dfba8dd322c" | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" | |
| CMAKE_ARCH: aarch64 | |
| .linux_package: | |
| variables: | |
| BOOTSTRAP_ARGS: '-- "-DCMake_DOC_ARTIFACT_PREFIX=$CI_PROJECT_DIR/build/install-doc"' | |
| .sunos_release_x86_64: | |
| image: "kitware/cmake:build-sunos-x86_64-deps-2025-02-27" | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" | |
| CMAKE_ARCH: x86_64 | |
| .sunos_release_sparc64: | |
| image: "kitware/cmake:build-sunos-sparc64-deps-2025-02-27" | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" | |
| CMAKE_ARCH: sparc64 | |
| .sunos_package: | |
| variables: | |
| CMake_DOC_ARTIFACT_PREFIX: "$CI_PROJECT_DIR/build/install-doc" | |
| .needs_centos7_x86_64: | |
| needs: | |
| - b:centos7-x86_64 | |
| .needs_centos8_aarch64: | |
| needs: | |
| - b:centos8-aarch64 | |
| ### Debian | |
| .debian13: | |
| image: "kitware/cmake:ci-debian13-x86_64-2026-09-30" | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" | |
| CMAKE_ARCH: x86_64 | |
| .debian13_iwyu: | |
| extends: .debian13 | |
| variables: | |
| CMAKE_CONFIGURATION: debian13_iwyu | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_CI_NO_INSTALL: 1 | |
| .debian13_aarch64: | |
| image: "kitware/cmake:ci-debian13-aarch64-2026-09-30" | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" | |
| CMAKE_ARCH: aarch64 | |
| ### Fedora | |
| .fedora44: | |
| image: "kitware/cmake:ci-fedora44-x86_64-2026-10-05" | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes" | |
| CMAKE_ARCH: x86_64 | |
| .fedora44_hip: | |
| image: "kitware/cmake:ci-fedora44-hip-x86_64-2026-04-30" | |
| variables: | |
| # FIXME(rocclr): device modules fail loading from binaries in paths with spaces | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci" | |
| CMAKE_ARCH: x86_64 | |
| #### Coverage builds | |
| .fedora44_gcc_gcov: | |
| extends: .fedora44 | |
| variables: | |
| # See issue #20001 | |
| CMAKE_GENERATOR: "Unix Makefiles" | |
| CMAKE_CONFIGURATION: fedora44_gcc_gcov | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_CI_BUILD_TYPE: Debug | |
| CMAKE_CI_TEST_TIMEOUT: "1500" | |
| CMAKE_CI_NO_INSTALL: 1 | |
| .fedora44_bullseye_coverage: | |
| extends: .fedora44 | |
| environment: | |
| name: bullseye-coverage | |
| variables: | |
| # See issue #20001 | |
| CMAKE_GENERATOR: "Unix Makefiles" | |
| CMAKE_CONFIGURATION: fedora44_bullseye_coverage | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_CI_BUILD_TYPE: Debug | |
| CMAKE_CI_TEST_TIMEOUT: "1500" | |
| CMAKE_CI_NO_INSTALL: 1 | |
| #### Lint builds | |
| .fedora44_tidy: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_tidy | |
| CMAKE_CI_NO_INSTALL: 1 | |
| .fedora44_pvs_studio: | |
| extends: .fedora44 | |
| environment: | |
| name: pvs-studio | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_pvs_studio | |
| CMAKE_CI_NO_INSTALL: 1 | |
| .fedora44_clang_analyzer: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_clang_analyzer | |
| CMAKE_CI_BUILD_TYPE: Debug | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_CI_NO_INSTALL: 1 | |
| .fedora44_clang_fuzzing: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_clang_fuzzing | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_CI_NO_INSTALL: 1 | |
| .fedora44_clazy: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_clazy | |
| CMAKE_CI_BUILD_TYPE: Debug | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_CI_NO_INSTALL: 1 | |
| .fedora44_sphinx: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_sphinx | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx" | |
| CMAKE_CI_NO_INSTALL: 1 | |
| .fedora44_sphinx_package: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_sphinx_package | |
| CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx" | |
| #### Build and test | |
| .debian13_ninja: | |
| extends: .debian13 | |
| variables: | |
| CMAKE_CONFIGURATION: debian13_ninja | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .debian13_aarch64_ninja: | |
| extends: .debian13_aarch64 | |
| variables: | |
| CMAKE_CONFIGURATION: debian13_aarch64_ninja | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .debian13_makefiles_inplace: | |
| extends: .debian13 | |
| variables: | |
| CMAKE_CONFIGURATION: debian13_makefiles_inplace | |
| CMAKE_GENERATOR: "Unix Makefiles" | |
| CMAKE_CI_BOOTSTRAP: 1 | |
| CMAKE_CI_INPLACE: 1 | |
| CMAKE_CI_NO_INSTALL: 1 | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .debian13_ninja_multi_symlinked: | |
| extends: .debian13 | |
| variables: | |
| CMAKE_CONFIGURATION: debian13_ninja_multi_symlinked | |
| CMAKE_GENERATOR: "Ninja Multi-Config" | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_CI_IN_SYMLINK_TREE: 1 | |
| CMAKE_CI_BUILD_DIR: "real_work/work/build" | |
| .debian13_extdeps: | |
| extends: .debian13 | |
| variables: | |
| CMAKE_CONFIGURATION: debian13_extdeps | |
| CMAKE_CI_BUILD_TYPE: Release | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .debian13_aarch64_extdeps: | |
| extends: .debian13_aarch64 | |
| variables: | |
| CMAKE_CONFIGURATION: debian13_aarch64_extdeps | |
| CMAKE_CI_BUILD_TYPE: Release | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .fedora44_extdeps: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_extdeps | |
| CMAKE_CI_BUILD_TYPE: Release | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .fedora44_ninja: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_ninja | |
| CMAKE_CI_BUILD_TYPE: Release | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .fedora44_makefiles: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_makefiles | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_GENERATOR: "Unix Makefiles" | |
| .fedora44_makefiles_symlinked: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_makefiles_symlinked | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_GENERATOR: "Unix Makefiles" | |
| CMAKE_CI_IN_SYMLINK_TREE: 1 | |
| CMAKE_CI_BUILD_DIR: "real_work/work/build" | |
| .fedora44_fastbuild: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_fastbuild | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_GENERATOR: "FASTBuild" | |
| .fedora44_ninja_instrumentation: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_ninja_instrumentation | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_GENERATOR: "Ninja" | |
| ### Clang Compiler | |
| .debian13_makefiles_clang: | |
| extends: .debian13 | |
| variables: | |
| CMAKE_CONFIGURATION: debian13_makefiles_clang | |
| CMAKE_GENERATOR: "Unix Makefiles" | |
| .debian13_ninja_clang: | |
| extends: .debian13 | |
| variables: | |
| CMAKE_CONFIGURATION: debian13_ninja_clang | |
| .fedora44_makefiles_clang: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_makefiles_clang | |
| CMAKE_GENERATOR: "Unix Makefiles" | |
| .fedora44_makefiles_lfortran: | |
| extends: .fedora44 | |
| variables: | |
| # FIXME(lfortran): -rpath flags with spaces not forwarded | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci" | |
| CMAKE_CONFIGURATION: fedora44_makefiles_lfortran | |
| CMAKE_GENERATOR: "Unix Makefiles" | |
| CTEST_LABELS: "Fortran" | |
| .fedora44_ninja_lfortran: | |
| extends: .fedora44 | |
| variables: | |
| # FIXME(lfortran): -rpath flags with spaces not forwarded | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci" | |
| CMAKE_CONFIGURATION: fedora44_ninja_lfortran | |
| CTEST_LABELS: "Fortran" | |
| .fedora44_ninja_multi: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_ninja_multi | |
| CMAKE_GENERATOR: "Ninja Multi-Config" | |
| .fedora44_ninja_clang: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_ninja_clang | |
| .fedora44_ninja_dpclang: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_ninja_dpclang | |
| .fedora44_ninja_gcc_std_reloc: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_ninja_gcc_std_reloc | |
| CTEST_LABELS: "CXXModules" | |
| .fedora44_ninja_multi_clang: | |
| extends: .fedora44 | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_ninja_multi_clang | |
| CMAKE_GENERATOR: "Ninja Multi-Config" | |
| ### Sanitizers | |
| .fedora_memcheck: | |
| variables: | |
| CMAKE_CI_BUILD_TYPE: RelWithDebInfo | |
| .fedora_asan_addon: | |
| extends: .fedora_memcheck | |
| variables: | |
| CTEST_MEMORYCHECK_TYPE: AddressSanitizer | |
| CTEST_MEMORYCHECK_SANITIZER_OPTIONS: "" | |
| .fedora_valgrind_addon: | |
| extends: .fedora_memcheck | |
| variables: | |
| CTEST_MEMORYCHECK_TYPE: Valgrind | |
| CMAKE_CI_RUN_MEMCHECK: "true" | |
| CMAKE_CI_TEST_TIMEOUT: "1500" | |
| CMAKE_VALGRIND_CONFIGURATION: fedora44 | |
| .fedora44_asan: | |
| extends: | |
| - .fedora44 | |
| - .fedora_asan_addon | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_asan | |
| .fedora44_ninja_valgrind: | |
| extends: | |
| - .fedora44 | |
| - .fedora_valgrind_addon | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_ninja_valgrind | |
| ### Intel Compiler | |
| .intelcompiler: | |
| image: "kitware/intelcompiler:$CMAKE_CI_INTELCOMPILER_IMAGE_TAG" | |
| environment: | |
| name: intel-compiler | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| .intelclassic_makefiles: | |
| extends: .intelcompiler | |
| variables: | |
| CMAKE_CONFIGURATION: intelclassic_makefiles | |
| CMAKE_GENERATOR: "Unix Makefiles" | |
| .inteloneapi_makefiles: | |
| extends: .intelcompiler | |
| variables: | |
| CMAKE_CONFIGURATION: inteloneapi_makefiles | |
| CMAKE_GENERATOR: "Unix Makefiles" | |
| ### NVHPC Compiler | |
| .nvhpc: | |
| image: "kitware/cmake:ci-nvhpc26.3-x86_64-2026-03-31" | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| CMAKE_CUDA_ARCHITECTURES_NATIVE_CLAMP: 1 | |
| .nvhpc_ninja: | |
| extends: .nvhpc | |
| variables: | |
| CMAKE_CONFIGURATION: nvhpc_ninja | |
| ### CUDA builds | |
| .cuda: | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" | |
| CTEST_LABELS: "CUDA" | |
| CMAKE_CUDA_ARCHITECTURES_NATIVE_CLAMP: 1 | |
| .cuda9.2: | |
| extends: .cuda | |
| image: "kitware/cmake:ci-cuda9.2-x86_64-2021-10-01" | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| .cuda9.2_nvidia: | |
| extends: .cuda9.2 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda9.2_nvidia | |
| CMAKE_GENERATOR: "Ninja Multi-Config" | |
| .cuda10.2: | |
| extends: .cuda | |
| image: "kitware/cmake:ci-cuda10.2-x86_64-2021-06-16" | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| .cuda10.2_nvidia: | |
| extends: .cuda10.2 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda10.2_nvidia | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda10.2_clang: | |
| extends: .cuda10.2 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda10.2_clang | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda11.6: | |
| extends: .cuda | |
| image: "kitware/cmake:ci-cuda11.6-x86_64-2022-02-28" | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| .cuda11.6_nvidia: | |
| extends: .cuda11.6 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda11.6_nvidia | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda11.6_clang: | |
| extends: .cuda11.6 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda11.6_clang | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda11.8_minimal: | |
| extends: .cuda | |
| image: "kitware/cmake:ci-cuda11.8-minimal-x86_64-2022-12-06" | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| .cuda11.8_minimal_nvidia: | |
| extends: .cuda11.8_minimal | |
| variables: | |
| CMAKE_CONFIGURATION: cuda11.8_minimal_nvidia | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda11.8_splayed_nvidia: | |
| extends: .cuda11.8_minimal | |
| variables: | |
| CMAKE_CONFIGURATION: cuda11.8_splayed_nvidia | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda12.2: | |
| extends: .cuda | |
| image: "kitware/cmake:ci-cuda12.2-x86_64-2024-09-25" | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| .cuda12.2_nvidia: | |
| extends: .cuda12.2 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda12.2_nvidia | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda12.2_clang: | |
| extends: .cuda12.2 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda12.2_clang | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda12.6: | |
| extends: .cuda | |
| image: "kitware/cmake:ci-cuda12.6-x86_64-2025-01-30" | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| .cuda12.6_nvidia: | |
| extends: .cuda12.6 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda12.6_nvidia | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda12.6_nvidia_clang: | |
| extends: .cuda12.6 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda12.6_nvidia_clang | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda12.6_clang: | |
| extends: .cuda12.6 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda12.6_clang | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda13.0: | |
| extends: .cuda | |
| image: "kitware/cmake:ci-cuda13.0-x86_64-2025-10-20" | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| .cuda13.0_nvidia: | |
| extends: .cuda13.0 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda13.0_nvidia | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda13.0_nvidia_fastbuild: | |
| extends: .cuda13.0 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda13.0_nvidia_fastbuild | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| CMAKE_GENERATOR: "FASTBuild" | |
| .cuda13.0_aarch64: | |
| extends: .cuda | |
| image: "kitware/cmake:ci-cuda13.0-aarch64-2025-10-31" | |
| variables: | |
| CMAKE_ARCH: aarch64 | |
| .cuda13.0_aarch64_nvidia: | |
| extends: .cuda13.0_aarch64 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda13.0_aarch64_nvidia | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda13.2: | |
| extends: .cuda | |
| image: "kitware/cmake:ci-cuda13.2-x86_64-2026-09-01" | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| .cuda13.2_nvidia: | |
| extends: .cuda13.2 | |
| variables: | |
| CMAKE_CONFIGURATION: cuda13.2_nvidia | |
| CTEST_NO_WARNINGS_ALLOWED: 1 | |
| .cuda13.2_clang: | |
| extends: .cuda13.2 | |
| variables: | |
| CMAKE_ARCH: x86_64 | |
| CMAKE_CONFIGURATION: cuda13.2_clang | |
| ### HIP builds | |
| .hip6.3: | |
| image: "kitware/cmake:ci-hip6.3-x86_64-2025-02-14" | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" | |
| CMAKE_ARCH: x86_64 | |
| CTEST_LABELS: "HIP" | |
| .hip6.3_radeon: | |
| extends: .hip6.3 | |
| variables: | |
| # FIXME(rocclr): device modules fail loading from binaries in paths with spaces | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci" | |
| CMAKE_CONFIGURATION: hip6.3_radeon | |
| CMAKE_GENERATOR: "Ninja Multi-Config" | |
| .debian13_hip_radeon: | |
| extends: .debian13 | |
| variables: | |
| CMAKE_CONFIGURATION: debian13_hip_radeon | |
| CTEST_LABELS: "HIP" | |
| .fedora44_hip_radeon: | |
| extends: .fedora44_hip | |
| variables: | |
| CMAKE_CONFIGURATION: fedora44_hip_radeon | |
| CTEST_LABELS: "HIP" | |
| .hip6.3_nvidia: | |
| extends: .hip6.3 | |
| variables: | |
| CMAKE_CONFIGURATION: hip6.3_nvidia | |
| CTEST_LABELS: "HIP" | |
| CMAKE_CUDA_ARCHITECTURES_NATIVE_CLAMP: 1 | |
| ### Debian 10 legacy packages | |
| .debian10: | |
| image: "kitware/cmake:ci-debian10-x86_64-2023-07-31" | |
| variables: | |
| GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" | |
| CMAKE_ARCH: x86_64 | |
| .debian10_legacy: | |
| extends: .debian10 | |
| variables: | |
| CMAKE_CONFIGURATION: debian10_legacy | |
| CTEST_LABELS: "Python2" | |
| ## Tags | |
| .linux_x86_64_tags: | |
| tags: | |
| - cmake | |
| - build | |
| - docker | |
| - linux-x86_64 | |
| .linux_x86_64_priv_tags: | |
| tags: | |
| - cmake | |
| - docker | |
| - linux-x86_64 | |
| - privileged | |
| .linux_x86_64_v3_tags: | |
| tags: | |
| - cmake | |
| - build | |
| - docker | |
| - linux-x86_64-v3 | |
| .linux_x86_64_tags_x11: | |
| tags: | |
| - cmake | |
| - docker | |
| - linux-x86_64 | |
| - x11 | |
| .linux_x86_64_tags_fast_x11: | |
| tags: | |
| - cmake | |
| - docker | |
| - linux-x86_64-v4 | |
| - x11 | |
| .linux_x86_64_tags_cuda_arch_30: | |
| tags: | |
| - cmake | |
| - cuda-arch-30 | |
| - docker | |
| - linux-x86_64 | |
| .linux_x86_64_tags_cuda_arch_52: | |
| tags: | |
| - cmake | |
| - cuda-arch-52 | |
| - docker | |
| - linux-x86_64 | |
| .linux_x86_64_v3_tags_cuda_arch_75: | |
| tags: | |
| - cmake | |
| - cuda-arch-75 | |
| - docker | |
| - linux-x86_64-v3 | |
| .linux_x86_64_tags_cuda_arch_75: | |
| tags: | |
| - cmake | |
| - cuda-arch-75 | |
| - docker | |
| - linux-x86_64 | |
| .linux_x86_64_tags_rocm5.7: | |
| tags: | |
| - cmake | |
| - radeon | |
| - rocm-5.7 | |
| - docker | |
| - linux-x86_64 | |
| .linux_x86_64_tags_rocm6.2: | |
| tags: | |
| - cmake | |
| - radeon | |
| - rocm-6.2 | |
| - docker | |
| - linux-x86_64 | |
| .linux_x86_64_tags_rocm6.3: | |
| tags: | |
| - cmake | |
| - radeon | |
| - rocm-6.3 | |
| - docker | |
| - linux-x86_64 | |
| .linux_aarch64_tags: | |
| tags: | |
| - cmake | |
| - build | |
| - docker | |
| - linux-aarch64 | |
| .linux_aarch64_tags_cuda_arch_75: | |
| tags: | |
| - cmake | |
| - cuda-arch-75 | |
| - docker | |
| - linux-aarch64 | |
| ## Linux-specific scripts | |
| .before_script_linux: &before_script_linux | |
| - source .gitlab/ci/env.sh | |
| - source .gitlab/ci/cmake-env.sh | |
| - source .gitlab/ci/ninja-env.sh | |
| .cmake_prep_source_linux: | |
| stage: prep | |
| script: | |
| - *before_script_linux | |
| - dnf install --setopt=install_weak_deps=False -y git-core | |
| - v="$(.gitlab/ci/cmake_version.sh)" | |
| - mkdir -p build/ | |
| - git archive --format=tgz --prefix="cmake-$v/" -o "build/cmake-$v.tar.gz" HEAD | |
| - git archive --format=zip --prefix="cmake-$v/" -o "build/cmake-$v.zip" HEAD | |
| interruptible: true | |
| .cmake_prep_doc_linux: | |
| stage: prep | |
| script: | |
| - *before_script_linux | |
| - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_configure.cmake" | |
| - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_build.cmake" | |
| interruptible: true | |
| .cmake_version_update_linux: | |
| stage: build | |
| extends: .fedora44 | |
| script: | |
| - .gitlab/ci/cmake_version_update.sh | |
| interruptible: false # The job internally fetches and retries. | |
| .cmake_spellcheck_linux: | |
| stage: build | |
| extends: .fedora44 | |
| script: | |
| - .gitlab/ci/codespell.bash | |
| - .gitlab/ci/typos.bash | |
| interruptible: true | |
| .cmake_ast_grep_linux: | |
| stage: build | |
| extends: .fedora44 | |
| script: | |
| - source .gitlab/ci/ast-grep-env.sh | |
| - .gitlab/ci/ast-grep-scan.sh | |
| interruptible: true | |
| .cmake_build_linux: | |
| stage: build | |
| script: | |
| - *before_script_linux | |
| - .gitlab/ci/sccache.sh | |
| - sccache --start-server | |
| - sccache --show-stats | |
| - .gitlab/ci/pre_configure.sh | |
| - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_configure.cmake" | |
| - .gitlab/ci/pre_build.sh | |
| - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_build.cmake" | |
| - .gitlab/ci/post_build.sh | |
| - sccache --show-stats | |
| interruptible: true | |
| .cmake_test_linux: | |
| stage: test | |
| script: | |
| - *before_script_linux | |
| - .gitlab/ci/pre_test.sh | |
| - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_test.cmake" | |
| interruptible: true | |
| .cmake_memcheck_linux: | |
| stage: test | |
| script: | |
| - *before_script_linux | |
| - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_memcheck.cmake" | |
| interruptible: true | |
| .cmake_coverage_linux: | |
| stage: test | |
| script: | |
| - *before_script_linux | |
| - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_coverage.cmake" | |
| coverage: '/Percentage Coverage: \d+.\d+%/' | |
| interruptible: true | |
| .cmake_build_linux_release: | |
| stage: build | |
| script: | |
| - source .gitlab/ci/env.sh | |
| # Bootstrap. | |
| - mkdir -p build/ | |
| - cp Utilities/Release/linux/$CMAKE_ARCH/cache.txt build/CMakeCache.txt | |
| # Make sccache available. | |
| - source .gitlab/ci/sccache-env.sh | |
| # Append sccache settings to the cache. | |
| - echo "CMAKE_C_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt | |
| - echo "CMAKE_CXX_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt | |
| # CI settings. | |
| - echo "CMake_TEST_INSTALL:BOOL=OFF" >> build/CMakeCache.txt | |
| - echo "CMAKE_INSTALL_PREFIX:PATH=$PWD/build/install" >> build/CMakeCache.txt | |
| - echo "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY:BOOL=ON" >> build/CMakeCache.txt | |
| # Appease Git. The Git in this container is old (1.7) and doesn't | |
| # understand some things. But, it doesn't need to, so make it blind. | |
| - mkdir -p .git/info | |
| - echo "* -crlf" >> .git/info/attributes | |
| - git reset --hard | |
| # Bootstrap | |
| - cd build/ | |
| - '$LAUNCHER ../bootstrap --parallel=$(nproc) --docdir=doc/cmake $BOOTSTRAP_ARGS' | |
| # FIXME: When CTest can drive an external CMake for the build as well, | |
| # use the scripts here. | |
| - "$LAUNCHER make -j$(nproc)" | |
| # NOTE: This regex matches that used in the release build. | |
| - "$LAUNCHER bin/ctest --output-on-failure -j$(nproc) -R '^(CMake\\.|CMakeLib\\.|RunCMake\\.ctest_memcheck)'" | |
| # Make a package. | |
| - bin/cpack -G TGZ | |
| - bin/cpack -G STGZ | |
| - sccache --show-stats | |
| interruptible: true | |
| .cmake_build_linux_standalone: | |
| stage: build | |
| script: | |
| - *before_script_linux | |
| - .gitlab/ci/sccache.sh | |
| - sccache --start-server | |
| - sccache --show-stats | |
| - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake" | |
| - sccache --show-stats | |
| interruptible: true | |
| .cmake_test_linux_release: | |
| stage: test-ext | |
| script: | |
| - *before_script_linux | |
| # Make the CMake package available. | |
| - mkdir -p build/install | |
| - tar -C build/install --strip-components=1 -xzf build/cmake-*-linux-$CMAKE_ARCH.tar.gz | |
| - .gitlab/ci/sccache.sh | |
| - sccache --start-server | |
| - sccache --show-stats | |
| - "$LAUNCHER build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake" | |
| - sccache --show-stats | |
| interruptible: true | |
| .cmake_test_linux_intelclassic_makefiles: | |
| extends: | |
| - .intelclassic_makefiles | |
| - .cmake_test_linux_release | |
| - .linux_x86_64_tags | |
| - .rules | |
| - .needs_centos7_x86_64 | |
| variables: | |
| CMAKE_CI_JOB_NIGHTLY: "true" | |
| CMAKE_CI_JOB_NO_MR: "true" | |
| .cmake_test_linux_inteloneapi_makefiles: | |
| extends: | |
| - .inteloneapi_makefiles | |
| - .cmake_test_linux_release | |
| - .linux_x86_64_tags | |
| - .rules | |
| - .needs_centos7_x86_64 | |
| variables: | |
| CMAKE_CI_JOB_NIGHTLY: "true" | |
| .cmake_build_sunos_release: | |
| stage: build | |
| script: | |
| - *before_script_linux | |
| # SunOS sysroot | |
| - Utilities/Release/sunos/docker/sysroot.bash $CMAKE_ARCH | |
| # Initial cache | |
| - mkdir -p build/ | |
| - cp Utilities/Release/sunos/$CMAKE_ARCH/cache.txt build/CMakeCache.txt | |
| # Make sccache available. | |
| - source .gitlab/ci/sccache-env.sh | |
| - echo "CMAKE_C_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt | |
| - echo "CMAKE_CXX_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt | |
| # Build | |
| - cd build/ | |
| - cmake .. -GNinja | |
| -DCMAKE_DOC_DIR=doc/cmake | |
| -DCMake_DOC_ARTIFACT_PREFIX="$CMake_DOC_ARTIFACT_PREFIX" | |
| -DCMAKE_TOOLCHAIN_FILE="$CI_PROJECT_DIR/Utilities/Release/sunos/$CMAKE_ARCH/toolchain.cmake" | |
| - ninja | |
| # Package | |
| - cpack -G "TGZ;STGZ" | |
| - sccache --show-stats | |
| interruptible: true | |
| ### Documentation | |
| .cmake_org_help: | |
| stage: build | |
| extends: | |
| - .fedora44 | |
| - .linux_x86_64_tags | |
| - .cmake_org_help_artifacts | |
| script: | |
| - *before_script_linux | |
| - mkdir -p build/ | |
| - cd build/ | |
| - cmake ../Utilities/Sphinx -GNinja | |
| -DSPHINX_HTML=ON | |
| -DSPHINX_HTML_COPYBUTTON=ON | |
| -DSPHINX_QTHELP=$CMAKE_CI_SPHINX_QTHELP | |
| -DCMake_SPHINX_CMAKE_ORG=ON | |
| -DCMake_SPHINX_CMAKE_ORG_OUTDATED=$CMAKE_CI_SPHINX_OUTDATED | |
| -DCMake_VERSION_NO_GIT=$CMAKE_CI_VERSION_NO_GIT | |
| - ninja | |
| ### Devcontainer testing | |
| .cmake_test_devcontainer: | |
| stage: test | |
| script: | |
| - dnf install -y --setopt=install_weak_deps=False podman | |
| - .gitlab/ci/devcontainer-run.sh |