Files
CMake/.gitlab-ci.yml
Ben Boeckel 6d168c41e3 gitlab-ci: split linux and macos shared before scripts
They're not actually the same anyways and the anchors can't be shared
between the files. We can figure out refactoring in the future.
2020-06-12 12:59:55 -04:00

202 lines
4.4 KiB
YAML

include:
# Metadata shared my 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
stages:
- build
- test
- test-ext
################################################################################
# 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
################################################################################
# Lint builds
build:debian10-iwyu:
extends:
- .debian10_iwyu
- .cmake_build_linux
- .linux_builder_tags
- .run_automatically
build:fedora31-tidy:
extends:
- .fedora31_tidy
- .cmake_build_linux
- .linux_builder_tags_qt
- .run_automatically
build:fedora31-sphinx:
extends:
- .fedora31_sphinx
- .cmake_build_linux
- .linux_builder_tags_qt
- .run_automatically
# Linux builds
build:centos6-release:
extends:
- .release_linux
- .cmake_build_release_linux
- .cmake_release_artifacts
- .linux_builder_tags
- .run_manually
test:fedora31-makefiles:
extends:
- .fedora31_makefiles
- .cmake_test_linux_package
- .linux_builder_tags_qt
- .run_automatically
dependencies:
- build:centos6-release
needs:
- build:centos6-release
test:cuda10.2-nvidia:
extends:
- .cuda10.2_nvidia
- .cmake_test_linux_package
- .linux_builder_tags_cuda
- .run_automatically
dependencies:
- build:centos6-release
needs:
- build:centos6-release
build:fedora31-ninja:
extends:
- .fedora31_ninja
- .cmake_build_linux
- .cmake_build_artifacts
- .linux_builder_tags_qt
- .run_manually
test:fedora31-ninja:
extends:
- .fedora31_ninja
- .cmake_test_linux
- .linux_builder_tags_qt
- .cmake_test_artifacts
- .run_automatically
dependencies:
- build:fedora31-ninja
needs:
- build:fedora31-ninja
test:fedora31-ninja-multi:
extends:
- .fedora31_ninja_multi
- .cmake_test_linux_external
- .linux_builder_tags_qt
- .run_automatically
dependencies:
- test:fedora31-ninja
needs:
- test:fedora31-ninja
# macOS builds
build:macos-ninja:
extends:
- .macos_ninja
- .cmake_build_macos
- .cmake_build_artifacts
- .macos_builder_tags
- .run_manually
test:macos-ninja:
extends:
- .macos_ninja
- .cmake_test_macos
- .cmake_test_artifacts
- .macos_builder_tags
- .run_automatically
dependencies:
- build:macos-ninja
needs:
- build:macos-ninja
build:macos-makefiles:
extends:
- .macos_makefiles
- .cmake_build_macos
- .cmake_build_artifacts
- .macos_builder_tags
- .run_manually
test:macos-makefiles:
extends:
- .macos_makefiles
- .cmake_test_macos
- .macos_builder_tags
- .run_automatically
dependencies:
- build:macos-makefiles
needs:
- build:macos-makefiles
test:macos-xcode:
extends:
- .macos_xcode
- .cmake_test_macos_external
- .macos_builder_ext_tags
- .run_automatically
dependencies:
- test:macos-ninja
needs:
- test:macos-ninja
# Windows builds
build:windows-vs2019-x64-ninja:
extends:
- .windows_vs2019_x64_ninja
- .cmake_build_windows
- .cmake_build_artifacts
- .windows_builder_tags
- .run_manually
test:windows-vs2019-x64-ninja:
extends:
- .windows_vs2019_x64_ninja
- .cmake_test_windows
- .windows_builder_tags
- .cmake_test_artifacts
- .run_automatically
dependencies:
- build:windows-vs2019-x64-ninja
needs:
- build:windows-vs2019-x64-ninja
test:windows-vs2019-x64:
extends:
- .windows_vs2019_x64
- .cmake_test_windows_external
- .windows_builder_ext_tags
- .run_automatically
dependencies:
- test:windows-vs2019-x64-ninja
needs:
- test:windows-vs2019-x64-ninja