From d3e02f1a48dd700ff1d28b80575a494e199527ea Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 3 Jun 2020 09:12:48 -0400 Subject: [PATCH 1/2] gitlab-ci: support macOS jobs which support concurrent builds --- .gitlab-ci.yml | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cf7cb26fb4..badd01ee91 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -74,6 +74,15 @@ CMAKE_GENERATOR: "Unix Makefiles" .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 @@ -81,19 +90,16 @@ # 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 @@ -156,8 +162,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: From cbe80818e2843fa90b4a6bac8544bd4fb49b14be Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 3 Jun 2020 09:13:45 -0400 Subject: [PATCH 2/2] gitlab-ci: support Windows jobs which support concurrent builds --- .gitlab-ci.yml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index badd01ee91..5d9456bbfa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -107,6 +107,12 @@ CMAKE_GENERATOR: "Unix Makefiles" .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 @@ -116,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 @@ -179,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 @@ -478,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