[libcxx-commits] [libcxx] 2704d0a - [libc++][ci] Re-split the CI pipeline to try and reduce load on more builders

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Tue Apr 20 05:38:13 PDT 2021


Author: Louis Dionne
Date: 2021-04-20T08:37:52-04:00
New Revision: 2704d0a70172f5b57dd2bebcc173d4c9cec082d3

URL: https://github.com/llvm/llvm-project/commit/2704d0a70172f5b57dd2bebcc173d4c9cec082d3
DIFF: https://github.com/llvm/llvm-project/commit/2704d0a70172f5b57dd2bebcc173d4c9cec082d3.diff

LOG: [libc++][ci] Re-split the CI pipeline to try and reduce load on more builders

Added: 
    

Modified: 
    libcxx/utils/ci/buildkite-pipeline.yml

Removed: 
    


################################################################################
diff  --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml
index 5a74a01fa6f90..6dfb1bfb5f396 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"


        


More information about the libcxx-commits mailing list