include: # Metadata shared by many jobs - local: .gitlab/rules.yml - local: .gitlab/artifacts.yml # OS builds. - local: .gitlab/os-linux.yml - local: .gitlab/os-macos.yml - local: .gitlab/os-windows.yml # Post-build steps - local: .gitlab/upload.yml stages: - prep - build - test - test-ext - upload ################################################################################ # 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 ################################################################################ # Job prefixes: # - `b:` build # - `l:` lint # - `p:` prep # - `t:` test # - `u:` upload # Prep jobs p:source-package: extends: - .linux_prep_source - .cmake_prep_source_linux - .linux_builder_tags - .cmake_release_artifacts - .run_only_for_package p:doc-package: extends: - .fedora35_sphinx_package - .cmake_prep_doc_linux - .linux_builder_tags_qt - .cmake_doc_artifacts - .run_only_for_package .u:source-package: extends: - .rsync_upload_binary - .run_only_for_package dependencies: - p:source-package needs: - p:source-package variables: RSYNC_DESTINATION: dev # Documentation builds b:help:master: extends: - .cmake_org_help - .run_only_for_continuous_master .u:help:master: extends: - .rsync_upload_help - .run_only_for_continuous_master variables: RSYNC_DESTINATION: git-master dependencies: - b:help:master needs: - b:help:master b:help:stage: extends: - .cmake_org_help - .run_only_for_continuous_stage .u:help:stage: extends: - .rsync_upload_help - .run_only_for_continuous_stage variables: RSYNC_DESTINATION: git-stage dependencies: - b:help:stage needs: - b:help:stage # Lint builds l:codespell: extends: - .cmake_codespell_linux - .linux_builder_tags - .run_automatically l:iwyu-debian10: extends: - .debian10_iwyu - .cmake_build_linux - .linux_builder_tags - .run_automatically l:tidy-fedora35: extends: - .fedora35_tidy - .cmake_build_linux - .linux_builder_tags_qt - .run_automatically l:sphinx-fedora35: extends: - .fedora35_sphinx - .cmake_build_linux - .linux_builder_tags_qt - .run_automatically variables: CMAKE_CI_JOB_CONTINUOUS: "true" CMAKE_CI_JOB_HELP: "true" l:clang-analyzer-fedora35: extends: - .fedora35_clang_analyzer - .cmake_build_linux - .linux_builder_tags_qt - .run_automatically variables: CMAKE_CI_JOB_NIGHTLY: "true" # Linux builds b:centos6-x86_64: extends: - .linux_release_x86_64 - .cmake_build_linux_release - .cmake_release_artifacts - .linux_builder_tags - .run_manually b:centos7-aarch64: extends: - .linux_release_aarch64 - .cmake_build_linux_release - .cmake_release_artifacts - .linux_builder_tags_aarch64 - .run_manually variables: CMAKE_CI_NO_MR: "true" t:debian10-ninja: extends: - .debian10_ninja - .cmake_test_linux_release - .linux_builder_tags_qt - .cmake_junit_artifacts - .run_dependent - .needs_centos6_x86_64 variables: CMAKE_CI_JOB_NIGHTLY_NINJA: "true" t:debian10-aarch64-ninja: extends: - .debian10_aarch64_ninja - .cmake_test_linux_release - .linux_builder_tags_aarch64_qt - .cmake_junit_artifacts - .run_dependent - .needs_centos7_aarch64 variables: CMAKE_CI_NO_MR: "true" t:debian10-ninja-clang: extends: - .debian10_ninja_clang - .cmake_test_linux_release - .linux_builder_tags_qt - .run_manually - .needs_centos6_x86_64 variables: CMAKE_CI_JOB_NIGHTLY: "true" t:debian10-makefiles-clang: extends: - .debian10_makefiles_clang - .cmake_test_linux_release - .linux_builder_tags_qt - .run_manually - .needs_centos6_x86_64 variables: CMAKE_CI_JOB_NIGHTLY: "true" t:fedora35-makefiles: extends: - .fedora35_makefiles - .cmake_test_linux_release - .linux_builder_tags_qt - .run_dependent - .needs_centos6_x86_64 t:fedora35-makefiles-nospace: extends: - .fedora35_makefiles - .cmake_test_linux_release - .linux_builder_tags_qt - .cmake_junit_artifacts - .run_dependent - .needs_centos6_x86_64 variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake-ci" CMAKE_CI_BUILD_NAME: fedora35_makefiles_nospace CMAKE_CI_JOB_NIGHTLY: "true" t:cuda9.2-nvidia: extends: - .cuda9.2_nvidia - .cmake_test_linux_release - .linux_builder_tags_cuda - .run_dependent - .needs_centos6_x86_64 variables: CMAKE_CI_JOB_NIGHTLY: "true" t:cuda10.2-nvidia: extends: - .cuda10.2_nvidia - .cmake_test_linux_release - .linux_builder_tags_cuda - .cmake_junit_artifacts - .run_dependent - .needs_centos6_x86_64 t:cuda10.2-clang: extends: - .cuda10.2_clang - .cmake_test_linux_release - .linux_builder_tags_cuda - .run_dependent - .needs_centos6_x86_64 variables: CMAKE_CI_JOB_NIGHTLY: "true" t:hip4.2-radeon: extends: - .hip4.2_radeon - .cmake_test_linux_release - .linux_builder_tags_radeon - .run_dependent - .needs_centos6_x86_64 variables: CMAKE_CI_JOB_NIGHTLY: "true" b:fedora35-ninja: extends: - .fedora35_ninja - .cmake_build_linux - .cmake_build_artifacts - .linux_builder_tags_qt - .run_manually t:fedora35-ninja: extends: - .fedora35_ninja - .cmake_test_linux - .linux_builder_tags_x11 - .cmake_test_artifacts - .run_dependent dependencies: - b:fedora35-ninja needs: - b:fedora35-ninja t:fedora35-ninja-multi: extends: - .fedora35_ninja_multi - .cmake_test_linux_external - .linux_builder_tags_qt - .cmake_junit_artifacts - .run_dependent dependencies: - t:fedora35-ninja needs: - t:fedora35-ninja t:intel2016-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2016_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2016-el7 t:intel2016u1-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2016u1_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2016u1-el7 t:intel2016u2-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2016u2_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2016u2-el7 t:intel2017-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2017_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2017-el7 t:intel2017u1-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2017u1_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2017u1-el7 t:intel2017u2-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2017u2_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2017u2-el7 t:intel2017u3-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2017u3_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2017u3-el7 t:intel2017u4-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2017u4_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2017u4-el7 t:intel2017u5-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2017u5_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2017u5-el7 t:intel2017u6-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2017u6_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2017u6-el7 t:intel2017u7-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2017u7_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2017u7-el7 t:intel2017u8-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2017u8_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2017u8-el7 t:intel2018-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2018_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2018-el7 t:intel2018u1-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2018u1_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2018u1-el7 t:intel2018u2-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2018u2_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2018u2-el7 t:intel2018u3-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2018u3_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2018u3-el7 t:intel2018u4-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2018u4_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2018u4-el7 t:intel2019-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2019_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2019-el7 t:intel2019u1-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2019u1_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2019u1-el7 t:intel2019u2-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2019u2_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2019u2-el7 t:intel2019u3-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2019u3_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2019u3-el7 t:intel2019u4-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2019u4_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2019u4-el7 t:intel2020-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2020_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2020-el8 t:intel2020u2-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2020u2_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2020u2-el8 t:intel2020u4-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2020u4_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2020u4-el8 t:intel2021.1.1-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2021.1.1_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2021.1.1-el8 t:intel2021.1.2-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2021.1.2_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2021.1.2-el8 t:intel2021.2.0-makefiles: extends: - .cmake_test_linux_intelclassic_makefiles variables: CMAKE_CI_BUILD_NAME: intel2021.2.0_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2021.2.0-el8 t:oneapi2021.1.1-makefiles: extends: - .cmake_test_linux_inteloneapi_makefiles variables: CMAKE_CI_BUILD_NAME: oneapi2021.1.1_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2021.1.1-el8 t:oneapi2021.1.2-makefiles: extends: - .cmake_test_linux_inteloneapi_makefiles variables: CMAKE_CI_BUILD_NAME: oneapi2021.1.2_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2021.1.2-el8 t:oneapi2021.2.0-makefiles: extends: - .cmake_test_linux_inteloneapi_makefiles variables: CMAKE_CI_BUILD_NAME: oneapi2021.2.0_makefiles CMAKE_CI_INTELCOMPILER_IMAGE_TAG: 2021.2.0-el8 b:linux-x86_64-package: extends: - .linux_package - .linux_release_x86_64 - .cmake_build_linux_release - .cmake_release_artifacts - .linux_builder_tags - .run_only_for_package dependencies: - p:doc-package needs: - p:doc-package .u:linux-x86_64-package: extends: - .rsync_upload_binary - .run_only_for_package dependencies: - b:linux-x86_64-package needs: - b:linux-x86_64-package variables: RSYNC_DESTINATION: dev b:linux-aarch64-package: extends: - .linux_package - .linux_release_aarch64 - .cmake_build_linux_release - .cmake_release_artifacts - .linux_builder_tags_aarch64 - .run_only_for_package dependencies: - p:doc-package needs: - p:doc-package .u:linux-aarch64-package: extends: - .rsync_upload_binary - .run_only_for_package dependencies: - b:linux-aarch64-package needs: - b:linux-aarch64-package variables: RSYNC_DESTINATION: dev ## Sanitizer builds b:fedora35-asan: extends: - .fedora35_asan - .cmake_build_linux - .cmake_build_artifacts - .linux_builder_tags_qt - .run_manually variables: CMAKE_CI_JOB_NIGHTLY: "true" t:fedora35-asan: extends: - .fedora35_asan - .cmake_memcheck_linux - .linux_builder_tags_qt - .run_dependent dependencies: - b:fedora35-asan needs: - b:fedora35-asan variables: CMAKE_CI_JOB_NIGHTLY: "true" # macOS builds b:macos-x86_64-ninja: extends: - .macos_x86_64_ninja - .cmake_build_macos - .cmake_build_artifacts - .macos_x86_64_builder_tags - .run_manually b:macos-arm64-ninja: extends: - .macos_arm64_ninja - .cmake_build_macos - .cmake_build_artifacts - .macos_arm64_builder_tags - .run_manually variables: CMAKE_CI_NO_MR: "true" t:macos-x86_64-ninja: extends: - .macos_x86_64_ninja - .cmake_test_macos - .cmake_test_artifacts - .macos_x86_64_builder_tags - .run_dependent dependencies: - b:macos-x86_64-ninja needs: - b:macos-x86_64-ninja variables: CMAKE_CI_JOB_NIGHTLY_NINJA: "true" t:macos-arm64-ninja: extends: - .macos_arm64_ninja - .cmake_test_macos - .cmake_test_artifacts - .macos_arm64_builder_tags - .run_dependent dependencies: - b:macos-arm64-ninja needs: - b:macos-arm64-ninja variables: CMAKE_CI_NO_MR: "true" b:macos-x86_64-makefiles: extends: - .macos_x86_64_makefiles - .cmake_build_macos - .cmake_build_artifacts - .macos_x86_64_builder_tags - .run_manually t:macos-x86_64-makefiles: extends: - .macos_x86_64_makefiles - .cmake_test_macos - .macos_x86_64_builder_tags - .run_dependent dependencies: - b:macos-x86_64-makefiles needs: - b:macos-x86_64-makefiles t:macos-x86_64-xcode: extends: - .macos_x86_64_xcode - .cmake_test_macos_external - .macos_x86_64_builder_ext_tags - .cmake_junit_artifacts - .run_dependent dependencies: - t:macos-x86_64-ninja needs: - t:macos-x86_64-ninja t:macos-arm64-xcode: extends: - .macos_arm64_xcode - .cmake_test_macos_external - .macos_arm64_builder_ext_tags - .cmake_junit_artifacts - .run_dependent dependencies: - t:macos-arm64-ninja needs: - t:macos-arm64-ninja variables: CMAKE_CI_NO_MR: "true" b:macos-package: extends: - .macos_package - .cmake_build_macos_package - .cmake_release_artifacts - .macos_x86_64_builder_tags_package - .run_only_for_package dependencies: - p:doc-package needs: - p:doc-package .u:macos-package: extends: - .rsync_upload_binary - .run_only_for_package dependencies: - b:macos-package needs: - b:macos-package variables: RSYNC_DESTINATION: dev b:macos10.10-package: extends: - .macos10.10_package - .cmake_build_macos_package - .cmake_release_artifacts - .macos_x86_64_builder_tags_package - .run_only_for_package dependencies: - p:doc-package needs: - p:doc-package .u:macos10.10-package: extends: - .rsync_upload_binary - .run_only_for_package dependencies: - b:macos10.10-package needs: - b:macos10.10-package variables: RSYNC_DESTINATION: dev # Windows builds b:windows-vs2022-x64-ninja: extends: - .windows_vs2022_x64_ninja - .cmake_build_windows - .cmake_build_artifacts - .windows_tags_nonconcurrent_vs2022 - .run_manually t:windows-vs2022-x64-ninja: extends: - .windows_vs2022_x64_ninja - .cmake_test_windows - .windows_tags_nonconcurrent_vs2022 - .cmake_test_artifacts - .run_dependent dependencies: - b:windows-vs2022-x64-ninja needs: - b:windows-vs2022-x64-ninja variables: CMAKE_CI_JOB_NIGHTLY_NINJA: "true" t:windows-vs2022-x64: extends: - .windows_vs2022_x64 - .cmake_test_windows_external - .windows_tags_concurrent_vs2022 - .cmake_junit_artifacts - .run_dependent dependencies: - t:windows-vs2022-x64-ninja needs: - t:windows-vs2022-x64-ninja t:windows-vs2019-x64: extends: - .windows_vs2019_x64 - .cmake_test_windows_external - .windows_tags_concurrent_vs2019 - .cmake_junit_artifacts - .run_dependent dependencies: - t:windows-vs2022-x64-ninja needs: - t:windows-vs2022-x64-ninja variables: CMAKE_CI_JOB_NIGHTLY: "true" t:windows-vs2022-x64-nmake: extends: - .windows_vs2022_x64_nmake - .cmake_test_windows_nmake - .windows_tags_concurrent_vs2022 - .cmake_junit_artifacts - .run_dependent dependencies: - t:windows-vs2022-x64-ninja needs: - t:windows-vs2022-x64-ninja variables: CMAKE_CI_JOB_NIGHTLY: "true" t:windows-vs2022-x64-jom: extends: - .windows_vs2022_x64_jom - .cmake_test_windows_jom - .windows_tags_concurrent_vs2022 - .cmake_junit_artifacts - .run_dependent dependencies: - t:windows-vs2022-x64-ninja needs: - t:windows-vs2022-x64-ninja variables: CMAKE_CI_JOB_NIGHTLY: "true" t:windows-borland5.5: extends: - .windows_borland5.5 - .cmake_test_windows_borland - .windows_tags_concurrent - .cmake_junit_artifacts - .run_dependent dependencies: - t:windows-vs2022-x64-ninja needs: - t:windows-vs2022-x64-ninja variables: CMAKE_CI_JOB_NIGHTLY: "true" t:windows-borland5.8: extends: - .windows_borland5.8 - .cmake_test_windows_borland - .windows_tags_concurrent - .cmake_junit_artifacts - .run_dependent dependencies: - t:windows-vs2022-x64-ninja needs: - t:windows-vs2022-x64-ninja variables: CMAKE_CI_JOB_NIGHTLY: "true" t:windows-msvc-v71-nmake: extends: - .windows_msvc_v71_nmake - .cmake_test_windows_msvc - .windows_tags_concurrent - .cmake_junit_artifacts - .run_dependent dependencies: - t:windows-vs2022-x64-ninja needs: - t:windows-vs2022-x64-ninja variables: CMAKE_CI_JOB_NIGHTLY: "true" t:windows-openwatcom1.9: extends: - .windows_openwatcom1.9 - .cmake_test_windows_openwatcom - .windows_tags_concurrent - .cmake_junit_artifacts - .run_dependent dependencies: - t:windows-vs2022-x64-ninja needs: - t:windows-vs2022-x64-ninja variables: CMAKE_CI_JOB_NIGHTLY: "true"