blob: 2cb4716554378d93a13e73e35c2e8d6a14892f7e [file] [log] [blame]
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"