From 2704d0a70172f5b57dd2bebcc173d4c9cec082d3 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Tue, 20 Apr 2021 08:35:39 -0400 Subject: [PATCH] [libc++][ci] Re-split the CI pipeline to try and reduce load on more builders --- libcxx/utils/ci/buildkite-pipeline.yml | 64 +++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml index 5a74a01..6dfb1bf 100644 --- a/libcxx/utils/ci/buildkite-pipeline.yml +++ b/libcxx/utils/ci/buildkite-pipeline.yml @@ -13,8 +13,15 @@ # into scripts. This is critical to being able to reproduce CI issues outside # of the CI environment, which is important for debugging. # +# It is also worth noting that this script is split into several sections, the +# goal being to reduce the load on testers when a commit is known to fail. +# steps: + # + # Light pre-commit tests for things like formatting or when people forget + # to update generated files. + # - label: "Format" command: "libcxx/utils/ci/run-buildbot check-format" artifact_paths: @@ -39,11 +46,11 @@ steps: - exit_status: -1 # Agent was lost limit: 2 - # All jobs defined before this `wait` will run whenever a CI job is started. - # Jobs defined after the `wait` will run only if all the jobs above - # succeeded. The build failures before this `wait` can be fixed by running - # the proper scripts or clang-format. We use this to reduce the load on the - # testers and avoid running builds that we know fail anyway. + # + # General testing with the default configuration, under all the supported + # Standard modes, with Clang and GCC and on Apple. This catches most issues + # upfront. + # - wait - label: "C++03" @@ -118,8 +125,20 @@ steps: - exit_status: -1 # Agent was lost limit: 2 - - label: "-fno-exceptions" - command: "libcxx/utils/ci/run-buildbot generic-noexceptions" + - label: "MacOS C++20" + command: "libcxx/utils/ci/run-buildbot generic-cxx20" + artifact_paths: + - "**/test-results.xml" + - "**/*.abilist" + agents: + queue: "libcxx-builders-macos" + retry: + automatic: + - exit_status: -1 # Agent was lost + limit: 2 + + - label: "GCC/C++20" + command: "libcxx/utils/ci/run-buildbot generic-gcc" artifact_paths: - "**/test-results.xml" agents: @@ -129,8 +148,13 @@ steps: - exit_status: -1 # Agent was lost limit: 2 - - label: "Static libraries" - command: "libcxx/utils/ci/run-buildbot generic-static" + # + # All other supported configurations of libc++. + # + - wait + + - label: "-fno-exceptions" + command: "libcxx/utils/ci/run-buildbot generic-noexceptions" artifact_paths: - "**/test-results.xml" agents: @@ -140,8 +164,8 @@ steps: - exit_status: -1 # Agent was lost limit: 2 - - label: "GCC/C++20" - command: "libcxx/utils/ci/run-buildbot generic-gcc" + - label: "Static libraries" + command: "libcxx/utils/ci/run-buildbot generic-static" artifact_paths: - "**/test-results.xml" agents: @@ -250,18 +274,6 @@ steps: - exit_status: -1 # Agent was lost limit: 2 - - label: "MacOS C++20" - command: "libcxx/utils/ci/run-buildbot generic-cxx20" - artifact_paths: - - "**/test-results.xml" - - "**/*.abilist" - agents: - queue: "libcxx-builders-macos" - retry: - automatic: - - exit_status: -1 # Agent was lost - limit: 2 - - label: "Benchmarks" command: "libcxx/utils/ci/run-buildbot benchmarks" artifact_paths: @@ -330,12 +342,6 @@ steps: - exit_status: -1 # Agent was lost limit: 2 - # All jobs defined before this `wait` will run whenever a CI job is started. - # Jobs defined after the `wait` will run only if all the jobs above succeeded. - # We use this to reduce the load on testers that have more constrained resources - # and avoid running builds that we know fail anyway. - - wait - # Build with the configuration we use to generate libc++.dylib on Apple platforms - label: "Apple system" command: "libcxx/utils/ci/run-buildbot x86_64-apple-system" -- 2.7.4