Files
CMake/.gitlab-ci.yml
Ben Boeckel 7d5828e293 gitlab-ci: shorten job prefixes
This helps to maximize the amount of information visible in the GitLab
web interface.

Also document their meaning in the developer documentation and in the CI
configuration file directly.

See: https://gitlab.com/gitlab-org/gitlab/-/issues/8496
2021-11-23 10:11:25 -05:00

864 lines
21 KiB
YAML

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:
- .fedora34_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-fedora34:
extends:
- .fedora34_tidy
- .cmake_build_linux
- .linux_builder_tags_qt
- .run_automatically
l:sphinx-fedora34:
extends:
- .fedora34_sphinx
- .cmake_build_linux
- .linux_builder_tags_qt
- .run_automatically
variables:
CMAKE_CI_JOB_CONTINUOUS: "true"
CMAKE_CI_JOB_HELP: "true"
l:clang-analyzer-fedora34:
extends:
- .fedora34_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:fedora34-makefiles:
extends:
- .fedora34_makefiles
- .cmake_test_linux_release
- .linux_builder_tags_qt
- .run_dependent
- .needs_centos6_x86_64
t:fedora34-makefiles-nospace:
extends:
- .fedora34_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: fedora34_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:fedora34-ninja:
extends:
- .fedora34_ninja
- .cmake_build_linux
- .cmake_build_artifacts
- .linux_builder_tags_qt
- .run_manually
t:fedora34-ninja:
extends:
- .fedora34_ninja
- .cmake_test_linux
- .linux_builder_tags_x11
- .cmake_test_artifacts
- .run_dependent
dependencies:
- b:fedora34-ninja
needs:
- b:fedora34-ninja
t:fedora34-ninja-multi:
extends:
- .fedora34_ninja_multi
- .cmake_test_linux_external
- .linux_builder_tags_qt
- .cmake_junit_artifacts
- .run_dependent
dependencies:
- t:fedora34-ninja
needs:
- t:fedora34-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:fedora34-asan:
extends:
- .fedora34_asan
- .cmake_build_linux
- .cmake_build_artifacts
- .linux_builder_tags_qt
- .run_manually
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:fedora34-asan:
extends:
- .fedora34_asan
- .cmake_memcheck_linux
- .linux_builder_tags_qt
- .run_dependent
dependencies:
- b:fedora34-asan
needs:
- b:fedora34-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"