From d3e02f1a48dd700ff1d28b80575a494e199527ea Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 3 Jun 2020 09:12:48 -0400 Subject: 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 cf7cb26..badd01e 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 @@ -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: -- cgit v0.12 From cbe80818e2843fa90b4a6bac8544bd4fb49b14be Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 3 Jun 2020 09:13:45 -0400 Subject: 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 badd01e..5d9456b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -108,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. @@ -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 -- cgit v0.12