diff options
author | Brad King <brad.king@kitware.com> | 2020-06-03 15:59:14 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2020-06-03 15:59:19 (GMT) |
commit | 420a75fc3f612bbc938db9e16f8eb22b0118301c (patch) | |
tree | 86b2a40fb79716317de754a1f9a2e4830f6cacda | |
parent | 35a192788f3a32c56fb5f9b66e097d698e4d03da (diff) | |
parent | cbe80818e2843fa90b4a6bac8544bd4fb49b14be (diff) | |
download | CMake-420a75fc3f612bbc938db9e16f8eb22b0118301c.zip CMake-420a75fc3f612bbc938db9e16f8eb22b0118301c.tar.gz CMake-420a75fc3f612bbc938db9e16f8eb22b0118301c.tar.bz2 |
Merge topic 'gitlab-ci-concurrent-jobs'
cbe80818e2 gitlab-ci: support Windows jobs which support concurrent builds
d3e02f1a48 gitlab-ci: support macOS jobs which support concurrent builds
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4849
-rw-r--r-- | .gitlab-ci.yml | 49 |
1 files changed, 38 insertions, 11 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cf7cb26..5d9456b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -75,25 +75,31 @@ .macos: &macos variables: + GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci ext/$CI_CONCURRENT_ID" + # TODO: Factor this out so that each job selects the Xcode version to + # use so that different versions can be tested in a single pipeline. + DEVELOPER_DIR: "/Applications/Xcode-11.5.app/Contents/Developer" + +.macos_build: &macos_build + extends: .macos + + variables: # Note that shell runners only support runners with a single # concurrency level. We can't use `$CI_CONCURRENCY_ID` because this may # change between the build and test stages which CMake doesn't support. # Even if we could, it could change if other runners on the machine # could run at the same time, so we drop it. GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" - # TODO: Factor this out so that each job selects the Xcode version to - # use so that different versions can be tested in a single pipeline. - DEVELOPER_DIR: "/Applications/Xcode-11.5.app/Contents/Developer" .macos_ninja: &macos_ninja - extends: .macos + extends: .macos_build variables: CMAKE_CONFIGURATION: macos_ninja CTEST_NO_WARNINGS_ALLOWED: 1 .macos_makefiles: &macos_makefiles - extends: .macos + extends: .macos_build variables: CMAKE_CONFIGURATION: macos_makefiles @@ -102,6 +108,12 @@ .windows: &windows variables: + GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmake ci ext\\$CI_CONCURRENT_ID" + +.windows_build: &windows_build + extends: .windows + + variables: # Note that shell runners only support runners with a single # concurrency level. We can't use `$CI_CONCURRENCY_ID` because this may # change between the build and test stages which CMake doesn't support. @@ -110,7 +122,7 @@ GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmake ci" .windows_ninja: &windows_ninja - extends: .windows + extends: .windows_build variables: # Debug and RelWithDebinfo build types use the `/Zi` which results in @@ -156,8 +168,15 @@ - macos - shell - xcode-11.5 - - nonconcurrent # Use runners without concurrency for fixed GIT_CLONE_PATH. - # TODO: Use "concurrent" and "nonconcurrent" on individual jobs. + - nonconcurrent + +.macos_builder_ext_tags: &macos_builder_ext_tags + tags: + - cmake # Since this is a bare runner, pin to a project. + - macos + - shell + - xcode-11.5 + - concurrent .windows_builder_tags: &windows_builder_tags tags: @@ -166,8 +185,16 @@ - shell - vs2019 - msvc-19.25 - - nonconcurrent # Use runners without concurrency for fixed GIT_CLONE_PATH. - # TODO: Use "concurrent" and "nonconcurrent" on individual jobs. + - nonconcurrent + +.windows_builder_ext_tags: &windows_builder_ext_tags + tags: + - cmake # Since this is a bare runner, pin to a project. + - windows + - shell + - vs2019 + - msvc-19.25 + - concurrent .before_script_unix: &before_script_unix - .gitlab/ci/cmake.sh @@ -465,7 +492,7 @@ test:windows-vs2019-x64: <<: - *windows_vs2019_x64 - *cmake_test_windows_external - - *windows_builder_tags + - *windows_builder_ext_tags rules: *rules_settings dependencies: - test:windows-vs2019-x64-ninja |