[libcxx-commits] [libcxx] Attempt entire rewrite of buildkite pipeline using anchors. (PR #71624)

via libcxx-commits libcxx-commits at lists.llvm.org
Mon Nov 13 14:04:12 PST 2023


https://github.com/EricWF updated https://github.com/llvm/llvm-project/pull/71624

>From f868e6ab31e7fd74ad771e79159764c9d6e5dc9e Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Wed, 8 Nov 2023 08:37:47 -0500
Subject: [PATCH 1/3] Attempt entire rewrite of buildkite pipeline using
 anchors.

---
 libcxx/utils/ci/buildkite-pipeline.yml | 1529 ++++++++----------------
 1 file changed, 471 insertions(+), 1058 deletions(-)

diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml
index c2537618c56be38..4403da31814f509 100644
--- a/libcxx/utils/ci/buildkite-pipeline.yml
+++ b/libcxx/utils/ci/buildkite-pipeline.yml
@@ -28,916 +28,520 @@ env:
     # LLVM RELEASE bump remove compiler ToT - 3, e.g. "Clang 15"
     LLVM_HEAD_VERSION: "18"   # Used compiler, update POST-BRANCH.
     GCC_STABLE_VERSION: "13"
-steps:
-  #
-  # General testing with the default configuration, under all the supported
-  # Standard modes, with Clang and GCC. This catches most issues upfront.
-  # The goal of this step is to catch most issues while being very fast.
-  #
-  - label: "GCC ${GCC_STABLE_VERSION} / C++latest"
-    command: "libcxx/utils/ci/run-buildbot generic-gcc"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
-    env:
-        CC: "gcc-${GCC_STABLE_VERSION}"
-        CXX: "g++-${GCC_STABLE_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
 
-  - label: "C++26"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx26"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
-    env:
-        # Note modules require and absolute path for clang-scan-deps
-        # https://github.com/llvm/llvm-project/issues/61006
-        CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-        CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-        CMAKE: "/opt/bin/cmake"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
+definitions:
+  _common: &common
     timeout_in_minutes: 120
-
-  - label: "Modular build"
-    command: "libcxx/utils/ci/run-buildbot generic-modules"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
-    env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
     retry:
       automatic:
         - exit_status: -1  # Agent was lost
           limit: 2
-    timeout_in_minutes: 120
-
-  - label: "C++11"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx11"
     artifact_paths:
       - "**/test-results.xml"
       - "**/*.abilist"
-    env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
+      - "**/crash_diagnostics/*"
+
+# Define agents using YAML anchors to reduce duplication
+agents_definitions:
+  _linux_agent: &linux_agent
     agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
+      queue: libcxx-builders
+      os: linux
+  _windows_agent: &windows_agent
+    agents:
+      queue: windows
 
-  - label: "C++03"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx03"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
-    env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
+  # Mac OS Builders
+  _mac_agent_x86: &mac_agent_x86
     agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
+      queue: libcxx-builders
+      os: macos
+      arch: x86_64
+  _mac_agent_arm64: &mac_agent_arm64
+    agents:
+      queue: libcxx-builders
+      os: macos
+      arch: arm64
+  _mac_agent_any_arch: &mac_agent_any_arch
+    agents:
+      queue: libcxx-builders
+      os: macos
+  _arm_agent_aarch64: &arm_agent_aarch64
+    agents:
+      queue: libcxx-builders-linaro-arm
+      arch: aarch64
+  _arm_agent_armv8l: &arm_agent_armv8l
+    agents:
+      queue: libcxx-builders-linaro-arm
+      arch: armv8l
+  _aix_agent: &aix_agent
+    agents:
+      queue: libcxx-builders
+      os: aix
+  _android_agent: &android_agent
+    agents:
+      queue: libcxx-builders
+      os: android
+
+
+environment_definitions:
+  _common_env: &common_env
+      ENABLE_CLANG_TIDY: "On"
+      LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}"
+      CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics"
+      CC: clang-${LLVM_HEAD_VERSION}
+      CXX: clang++-${LLVM_HEAD_VERSION}
+      CMAKE: /opt/bin/cmake
+
+  _versioned_clang: &versioned_clang
+    # Note modules require and absolute path for clang-scan-deps
+    # https://github.com/llvm/llvm-project/issues/61006
+    CC: /usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang
+    CXX: /usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++
+
+
+steps:
+- label: GCC ${GCC_STABLE_VERSION} / C++latest
+  command: libcxx/utils/ci/run-buildbot generic-gcc
+  env:
+    <<: *common_env
+    CC: gcc-${GCC_STABLE_VERSION}
+    CXX: g++-${GCC_STABLE_VERSION}
+  <<: *common
+  <<: *linux_agent
+  
+
+
+- label: C++26
+  command: libcxx/utils/ci/run-buildbot generic-cxx26
+  env:
+    <<: *common_env
+    <<: *versioned_clang
+  <<: *linux_agent
+  <<: *common
+
+- label: Modular build
+  command: libcxx/utils/ci/run-buildbot generic-modules
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: C++11
+  command: libcxx/utils/ci/run-buildbot generic-cxx11
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: C++03
+  command: libcxx/utils/ci/run-buildbot generic-cxx03
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
 
   #
   # All other supported configurations of libc++.
   #
-  - wait
-
-  - label: "C++23"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx23"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+- wait
+
+- label: C++23
+  command: libcxx/utils/ci/run-buildbot generic-cxx23
+  env:
+    <<: *common_env
+    <<: *versioned_clang
+    ENABLE_STD_MODULES: 'On'
+  <<: *linux_agent
+  <<: *common
+
+- label: C++20
+  command: libcxx/utils/ci/run-buildbot generic-cxx20
+  env:
+    <<: *common_env
+    <<: *versioned_clang
+    ENABLE_STD_MODULES: 'On'
+  <<: *linux_agent
+  <<: *common
+
+- label: C++17
+  command: libcxx/utils/ci/run-buildbot generic-cxx17
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: C++14
+  command: libcxx/utils/ci/run-buildbot generic-cxx14
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: GCC ${GCC_STABLE_VERSION} / C++11
+  command: libcxx/utils/ci/run-buildbot generic-gcc-cxx11
+  env:
+    <<: *common_env
+    CC: gcc-${GCC_STABLE_VERSION}
+    CXX: g++-${GCC_STABLE_VERSION}
+  <<: *linux_agent
+  <<: *common
+
+- label: Clang 16
+  command: libcxx/utils/ci/run-buildbot generic-cxx23
+  env:
+    <<: *common_env
+    CC: clang-16
+    CXX: clang++-16
+    ENABLE_STD_MODULES: 'Off'
+  <<: *linux_agent
+  <<: *common
+
+- label: Clang 17
+  command: libcxx/utils/ci/run-buildbot generic-cxx23
+  env:
+    <<: *common_env
+    CC: /usr/lib/llvm-17/bin/clang
+    CXX: /usr/lib/llvm-17/bin/clang++
+  <<: *linux_agent
+  <<: *common
+
+- group: Sanitizers
+  steps:
+  - label: ASAN
+    command: libcxx/utils/ci/run-buildbot generic-asan
     env:
-        # Note: Modules require and absolute path for clang-scan-deps
-        # https://github.com/llvm/llvm-project/issues/61006
-        CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-        CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-        CMAKE: "/opt/bin/cmake"
-        ENABLE_CLANG_TIDY: "On"
-        ENABLE_STD_MODULES: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
+      <<: *common_env
+    <<: *linux_agent
+    <<: *common
 
-  - label: "C++20"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx20"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+  - label: TSAN
+    command: libcxx/utils/ci/run-buildbot generic-tsan
     env:
-        # Note: Modules require and absolute path for clang-scan-deps
-        # https://github.com/llvm/llvm-project/issues/61006
-        CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-        CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-        CMAKE: "/opt/bin/cmake"
-        ENABLE_CLANG_TIDY: "On"
-        ENABLE_STD_MODULES: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
+      <<: *common_env
+    <<: *linux_agent
+    <<: *common
 
-  - label: "C++17"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx17"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+  - label: UBSAN
+    command: libcxx/utils/ci/run-buildbot generic-ubsan
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
+      <<: *common_env
+    <<: *linux_agent
+    <<: *common
 
-  - label: "C++14"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx14"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+  - label: MSAN
+    command: libcxx/utils/ci/run-buildbot generic-msan
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
-
-  # Tests with the supported compilers.
-  - label: "GCC ${GCC_STABLE_VERSION} / C++11"
-    command: "libcxx/utils/ci/run-buildbot generic-gcc-cxx11"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+      <<: *common_env
+    <<: *linux_agent
+    <<: *common
+
+
+- label: Bootstrapping build
+  command: libcxx/utils/ci/run-buildbot bootstrapping-build
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: Static libraries
+  command: libcxx/utils/ci/run-buildbot generic-static
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: Shared library with merged ABI and unwinder libraries
+  command: libcxx/utils/ci/run-buildbot generic-merged
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: Fast hardening mode
+  command: libcxx/utils/ci/run-buildbot generic-hardening-mode-fast
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: Fast hardening mode with ABI breaks
+  command: libcxx/utils/ci/run-buildbot generic-hardening-mode-fast-with-abi-breaks
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: Extensive hardening mode
+  command: libcxx/utils/ci/run-buildbot generic-hardening-mode-extensive
+  env:
+    <<: *common_env
+    <<: *versioned_clang
+  <<: *linux_agent
+  <<: *common
+
+- label: Debug hardening mode
+  command: libcxx/utils/ci/run-buildbot generic-hardening-mode-debug
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: With LLVM's libunwind
+  command: libcxx/utils/ci/run-buildbot generic-with_llvm_unwinder
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: Modular build with Local Submodule Visibility
+  command: libcxx/utils/ci/run-buildbot generic-modules-lsv
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- group: Parts disabled
+  steps:
+  - label: No threads
+    command: libcxx/utils/ci/run-buildbot generic-no-threads
     env:
-        CC: "gcc-${GCC_STABLE_VERSION}"
-        CXX: "g++-${GCC_STABLE_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
+      <<: *common_env
+      <<: *versioned_clang
+    <<: *linux_agent
+    <<: *common
 
-  - label: "Clang 16"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx23"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
-    env:
-        CC: "clang-16"
-        CXX: "clang++-16"
-        ENABLE_CLANG_TIDY: "On"
-        ENABLE_STD_MODULES: "Off"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
 
-  - label: "Clang 17"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx23"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+  - label: No filesystem
+    command: libcxx/utils/ci/run-buildbot generic-no-filesystem
     env:
-        # Note: Modules require and absolute path for clang-scan-deps
-        # https://github.com/llvm/llvm-project/issues/61006
-        CC: "/usr/lib/llvm-17/bin/clang"
-        CXX: "/usr/lib/llvm-17/bin/clang++"
-        CMAKE: "/opt/bin/cmake"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
+      <<: *common_env
+      <<: *versioned_clang
+    <<: *linux_agent
+    <<: *common
 
-  # Tests with the sanitizers.
-  - group: "Sanitizers"
-    steps:
-    - label: "ASAN"
-      command: "libcxx/utils/ci/run-buildbot generic-asan"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          CC: "clang-${LLVM_HEAD_VERSION}"
-          CXX: "clang++-${LLVM_HEAD_VERSION}"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "TSAN"
-      command: "libcxx/utils/ci/run-buildbot generic-tsan"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          CC: "clang-${LLVM_HEAD_VERSION}"
-          CXX: "clang++-${LLVM_HEAD_VERSION}"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "UBSAN"
-      command: "libcxx/utils/ci/run-buildbot generic-ubsan"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          CC: "clang-${LLVM_HEAD_VERSION}"
-          CXX: "clang++-${LLVM_HEAD_VERSION}"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "MSAN"
-      command: "libcxx/utils/ci/run-buildbot generic-msan"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          CC: "clang-${LLVM_HEAD_VERSION}"
-          CXX: "clang++-${LLVM_HEAD_VERSION}"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-  # Tests with the various supported ways to build libc++.
-  - label: "Bootstrapping build"
-    command: "libcxx/utils/ci/run-buildbot bootstrapping-build"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
-      - "**/crash_diagnostics/*"
+  - label: No random device
+    command: libcxx/utils/ci/run-buildbot generic-no-random_device
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}"
-        CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
-
-  # Tests with various build configurations.
-  - label: "Static libraries"
-    command: "libcxx/utils/ci/run-buildbot generic-static"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+      <<: *common_env
+      <<: *versioned_clang
+    <<: *linux_agent
+    <<: *common
+  - label: No locale
+    command: libcxx/utils/ci/run-buildbot generic-no-localization
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
-
-  - label: "Shared library with merged ABI and unwinder libraries"
-    command: "libcxx/utils/ci/run-buildbot generic-merged"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+      <<: *common_env
+      <<: *versioned_clang
+    <<: *linux_agent
+    <<: *common
+  - label: No Unicode
+    command: libcxx/utils/ci/run-buildbot generic-no-unicode
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
-
-  - label: "Fast hardening mode"
-    command: "libcxx/utils/ci/run-buildbot generic-hardening-mode-fast"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+      <<: *common_env
+      <<: *versioned_clang
+    <<: *linux_agent
+    <<: *common
+  - label: No wide characters
+    command: libcxx/utils/ci/run-buildbot generic-no-wide-characters
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
-
-  - label: "Fast hardening mode with ABI breaks"
-    command: "libcxx/utils/ci/run-buildbot generic-hardening-mode-fast-with-abi-breaks"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+      <<: *common_env
+      <<: *versioned_clang
+    <<: *linux_agent
+    <<: *common
+  - label: No time zone database
+    command: libcxx/utils/ci/run-buildbot generic-no-tzdb
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
-
-  - label: "Extensive hardening mode"
-    command: "libcxx/utils/ci/run-buildbot generic-hardening-mode-extensive"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+      <<: *common_env
+    <<: *linux_agent
+    <<: *common
+  - label: No experimental features
+    command: libcxx/utils/ci/run-buildbot generic-no-experimental
     env:
-        # Note: Modules require an absolute path for `clang-scan-deps` (see
-        # https://github.com/llvm/llvm-project/issues/61006).
-        CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-        CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-        CMAKE: "/opt/bin/cmake"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
-
-  - label: "Debug hardening mode"
-    command: "libcxx/utils/ci/run-buildbot generic-hardening-mode-debug"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+      <<: *common_env
+      <<: *versioned_clang
+    <<: *linux_agent
+    <<: *common
+  - label: No exceptions
+    command: libcxx/utils/ci/run-buildbot generic-no-exceptions
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
+      <<: *common_env
+      <<: *versioned_clang
+    <<: *linux_agent
+    <<: *common
+
+- label: Unstable ABI
+  command: libcxx/utils/ci/run-buildbot generic-abi-unstable
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- label: Benchmarks
+  command: libcxx/utils/ci/run-buildbot benchmarks
+  env:
+    <<: *common_env
+  <<: *linux_agent
+  <<: *common
+
+- group: ':windows: Windows'
+  steps:
+  - label: Clang-cl (DLL)
+    command: bash libcxx/utils/ci/run-buildbot clang-cl-dll
+    <<: *windows_agent
+    <<: *common
+
+  - label: Clang-cl (Static)
+    command: bash libcxx/utils/ci/run-buildbot clang-cl-static
+    <<: *windows_agent
+    <<: *common
+
+  - label: Clang-cl (no vcruntime exceptions)
+    command: bash libcxx/utils/ci/run-buildbot clang-cl-no-vcruntime
+    <<: *common
+    <<: *windows_agent
+
+  - label: Clang-cl (Debug mode)
+    command: bash libcxx/utils/ci/run-buildbot clang-cl-debug
+    <<: *windows_agent
+    <<: *common
+
+  - label: Clang-cl (Static CRT)
+    command: bash libcxx/utils/ci/run-buildbot clang-cl-static-crt
+    <<: *windows_agent
+    <<: *common
+
+  - label: MinGW (DLL, x86_64)
+    command: bash libcxx/utils/ci/run-buildbot mingw-dll
+    <<: *windows_agent
+    <<: *common
+
+  - label: MinGW (Static, x86_64)
+    command: bash libcxx/utils/ci/run-buildbot mingw-static
+    <<: *windows_agent
+    <<: *common
+
+  - label: MinGW (DLL, i686)
+    command: bash libcxx/utils/ci/run-buildbot mingw-dll-i686
+    <<: *windows_agent
+    <<: *common
+
+- group: ':mac: Apple'
+  steps:
+  - label: MacOS x86_64
+    command: libcxx/utils/ci/run-buildbot generic-cxx23
+    <<: *mac_agent_x86
+    <<: *common
+
+  - label: MacOS arm64
+    command: libcxx/utils/ci/run-buildbot generic-cxx23
+    <<: *mac_agent_arm64
+    <<: *common
+
+  - label: MacOS with Modules
+    command: libcxx/utils/ci/run-buildbot generic-modules
+    <<: *mac_agent_any_arch
+    <<: *common
 
-  - label: "With LLVM's libunwind"
-    command: "libcxx/utils/ci/run-buildbot generic-with_llvm_unwinder"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+    # Build with the configuration we use to generate libc++.dylib on Apple platforms
+  - label: Apple system
+    command: libcxx/utils/ci/run-buildbot apple-system
+    <<: *mac_agent_arm64  # This can technically run on any architecture, but we have more resources on arm64 so we pin this job to arm64
+    <<: *common
+
+  - label: Apple back-deployment macosx10.13
+    command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.13
+    <<: *mac_agent_x86 # We need to use x86_64 for back-deployment CI on this target since macOS didn't support arm64 back then
+    <<: *common
+
+  - label: Apple back-deployment macosx10.15
+    command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.15
+    <<: *mac_agent_x86 # We need to use x86_64 for back-deployment CI on this target since macOS didn't support arm64 back then
+    <<: *common
+
+  - label: Apple back-deployment with hardening enabled
+    command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-hardened-11.0
+    <<: *mac_agent_x86  # TODO: Remove this once we are able to run back-deployment on arm64 again, since this isn't x86_64 specific
+    <<: *common
+
+- group: ARM
+  steps:
+  - label: AArch64
+    command: libcxx/utils/ci/run-buildbot aarch64
+    <<: *arm_agent_aarch64
+    <<: *common
+
+  - label: AArch64 -fno-exceptions
+    command: libcxx/utils/ci/run-buildbot aarch64-no-exceptions
+    <<: *arm_agent_aarch64
+    <<: *common
+
+  - label: Armv8
+    command: libcxx/utils/ci/run-buildbot armv8
+    <<: *arm_agent_armv8l
+    <<: *common
+
+  - label: Armv8 -fno-exceptions
+    command: libcxx/utils/ci/run-buildbot armv8-no-exceptions
+    <<: *arm_agent_armv8l
+    <<: *common
+
+  - label: Armv7
+    command: libcxx/utils/ci/run-buildbot armv7
+    <<: *arm_agent_armv8l
+    <<: *common
+
+  - label: Armv7 -fno-exceptions
+    command: libcxx/utils/ci/run-buildbot armv7-no-exceptions
+    <<: *arm_agent_armv8l
+    <<: *common
+
+- group: AIX
+  steps:
+  - label: AIX (32-bit)
+    command: libcxx/utils/ci/run-buildbot aix
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
-
-  - label: "Modular build with Local Submodule Visibility"
-    command: "libcxx/utils/ci/run-buildbot generic-modules-lsv"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+      CC: clang
+      CXX: clang++
+      OBJECT_MODE: '32'
+    <<: *aix_agent
+    <<: *common
+
+  - label: AIX (64-bit)
+    command: libcxx/utils/ci/run-buildbot aix
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
-
-  - group: "Parts disabled"
-    steps:
-    - label: "No threads"
-      command: "libcxx/utils/ci/run-buildbot generic-no-threads"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          # Note: Modules require and absolute path for clang-scan-deps
-          # https://github.com/llvm/llvm-project/issues/61006
-          CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-          CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-          CMAKE: "/opt/bin/cmake"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "No filesystem"
-      command: "libcxx/utils/ci/run-buildbot generic-no-filesystem"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          # Note: Modules require and absolute path for clang-scan-deps
-          # https://github.com/llvm/llvm-project/issues/61006
-          CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-          CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-          CMAKE: "/opt/bin/cmake"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "No random device"
-      command: "libcxx/utils/ci/run-buildbot generic-no-random_device"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          # Note: Modules require and absolute path for clang-scan-deps
-          # https://github.com/llvm/llvm-project/issues/61006
-          CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-          CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-          CMAKE: "/opt/bin/cmake"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "No locale"
-      command: "libcxx/utils/ci/run-buildbot generic-no-localization"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          # Note: Modules require and absolute path for clang-scan-deps
-          # https://github.com/llvm/llvm-project/issues/61006
-          CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-          CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-          CMAKE: "/opt/bin/cmake"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "No Unicode"
-      command: "libcxx/utils/ci/run-buildbot generic-no-unicode"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          # Note: Modules require and absolute path for clang-scan-deps
-          # https://github.com/llvm/llvm-project/issues/61006
-          CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-          CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-          CMAKE: "/opt/bin/cmake"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "No wide characters"
-      command: "libcxx/utils/ci/run-buildbot generic-no-wide-characters"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          # Note: Modules require and absolute path for clang-scan-deps
-          # https://github.com/llvm/llvm-project/issues/61006
-          CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-          CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-          CMAKE: "/opt/bin/cmake"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "No time zone database"
-      command: "libcxx/utils/ci/run-buildbot generic-no-tzdb"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          CC: "clang-${LLVM_HEAD_VERSION}"
-          CXX: "clang++-${LLVM_HEAD_VERSION}"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "No experimental features"
-      command: "libcxx/utils/ci/run-buildbot generic-no-experimental"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          # Note: Modules require and absolute path for clang-scan-deps
-          # https://github.com/llvm/llvm-project/issues/61006
-          CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-          CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-          CMAKE: "/opt/bin/cmake"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "No exceptions"
-      command: "libcxx/utils/ci/run-buildbot generic-no-exceptions"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          # Note: Modules require and absolute path for clang-scan-deps
-          # https://github.com/llvm/llvm-project/issues/61006
-          CC: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang"
-          CXX: "/usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++"
-          CMAKE: "/opt/bin/cmake"
-          ENABLE_CLANG_TIDY: "On"
-      agents:
-        queue: "libcxx-builders"
-        os: "linux"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-  - label: "Unstable ABI"
-    command: "libcxx/utils/ci/run-buildbot generic-abi-unstable"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
+      CC: clang
+      CXX: clang++
+      OBJECT_MODE: '64'
+    <<: *aix_agent
+    <<: *common
+
+- group: ':freebsd: FreeBSD'
+  steps:
+  - label: FreeBSD 13 amd64
+    command: libcxx/utils/ci/run-buildbot generic-cxx23
     env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
+      CC: clang16
+      CXX: clang++16
+      ENABLE_STD_MODULES: 'Off'
     agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
+      queue: libcxx-builders
+      os: freebsd
+    <<: *common
 
-  # Other non-testing CI jobs
-  - label: "Benchmarks"
-    command: "libcxx/utils/ci/run-buildbot benchmarks"
-    artifact_paths:
-      - "**/test-results.xml"
-      - "**/*.abilist"
-    env:
-        CC: "clang-${LLVM_HEAD_VERSION}"
-        CXX: "clang++-${LLVM_HEAD_VERSION}"
-        ENABLE_CLANG_TIDY: "On"
-    agents:
-      queue: "libcxx-builders"
-      os: "linux"
-    retry:
-      automatic:
-        - exit_status: -1  # Agent was lost
-          limit: 2
-    timeout_in_minutes: 120
+- group: ':android: Android'
+  steps:
+  - label: Android 5.0, x86 NDK
+    command: libcxx/utils/ci/run-buildbot android-ndk-21-def-x86
+    soft_fail: true
+    <<: *android_agent
+    <<: *common
 
-  # Tests on non-Unix platforms
-  - group: ":windows: Windows"
-    steps:
-    - label: "Clang-cl (DLL)"
-      command: "bash libcxx/utils/ci/run-buildbot clang-cl-dll"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "windows"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "Clang-cl (Static)"
-      command: "bash libcxx/utils/ci/run-buildbot clang-cl-static"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "windows"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "Clang-cl (no vcruntime exceptions)"
-      command: "bash libcxx/utils/ci/run-buildbot clang-cl-no-vcruntime"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "windows"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-
-    - label: "Clang-cl (Debug mode)"
-      command: "bash libcxx/utils/ci/run-buildbot clang-cl-debug"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "windows"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "Clang-cl (Static CRT)"
-      command: "bash libcxx/utils/ci/run-buildbot clang-cl-static-crt"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "windows"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "MinGW (DLL, x86_64)"
-      command: "bash libcxx/utils/ci/run-buildbot mingw-dll"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "windows"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "MinGW (Static, x86_64)"
-      command: "bash libcxx/utils/ci/run-buildbot mingw-static"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "windows"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "MinGW (DLL, i686)"
-      command: "bash libcxx/utils/ci/run-buildbot mingw-dll-i686"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "windows"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-  - group: ":mac: Apple"
-    steps:
-    - label: "MacOS x86_64"
-      command: "libcxx/utils/ci/run-buildbot generic-cxx23"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders"
-        os: "macos"
-        arch: "x86_64"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "MacOS arm64"
-      command: "libcxx/utils/ci/run-buildbot generic-cxx23"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders"
-        os: "macos"
-        arch: "arm64"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "MacOS with Modules"
-      command: "libcxx/utils/ci/run-buildbot generic-modules"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders"
-        os: "macos"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
+  - label: Android 13, x86_64 NDK
+    command: libcxx/utils/ci/run-buildbot android-ndk-33-goog-x86_64
+    soft_fail: true
+    <<: *android_agent
+    <<: *common
 
-    # Build with the configuration we use to generate libc++.dylib on Apple platforms
-    - label: "Apple system"
-      command: "libcxx/utils/ci/run-buildbot apple-system"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders"
-        os: "macos"
-        arch: "arm64" # This can technically run on any architecture, but we have more resources on arm64 so we pin this job to arm64
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    # Test back-deployment to older Apple platforms
-    - label: "Apple back-deployment macosx10.13"
-      command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.13"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders"
-        os: "macos"
-        arch: "x86_64" # We need to use x86_64 for back-deployment CI on this target since macOS didn't support arm64 back then.
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "Apple back-deployment macosx10.15"
-      command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.15"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders"
-        os: "macos"
-        arch: "x86_64" # We need to use x86_64 for back-deployment CI on this target since macOS didn't support arm64 back then.
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
 
     # TODO: Re-enable this once we've figured out how to run back-deployment testing on arm64 on recent OSes
     # - label: "Apple back-deployment macosx11.0 arm64"
@@ -954,194 +558,3 @@ steps:
     #       - exit_status: -1  # Agent was lost
     #         limit: 2
     #   timeout_in_minutes: 120
-
-    - label: "Apple back-deployment with hardening enabled"
-      command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-hardened-11.0"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders"
-        os: "macos"
-        arch: "x86_64" # TODO: Remove this once we are able to run back-deployment on arm64 again, since this isn't x86_64 specific
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-  - group: "ARM"
-    steps:
-    - label: "AArch64"
-      command: "libcxx/utils/ci/run-buildbot aarch64"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders-linaro-arm"
-        arch: "aarch64"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "AArch64 -fno-exceptions"
-      command: "libcxx/utils/ci/run-buildbot aarch64-no-exceptions"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders-linaro-arm"
-        arch: "aarch64"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "Armv8"
-      command: "libcxx/utils/ci/run-buildbot armv8"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders-linaro-arm"
-        arch: "armv8l"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "Armv8 -fno-exceptions"
-      command: "libcxx/utils/ci/run-buildbot armv8-no-exceptions"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders-linaro-arm"
-        arch: "armv8l"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "Armv7"
-      command: "libcxx/utils/ci/run-buildbot armv7"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders-linaro-arm"
-        arch: "armv8l" # Compiling for v7, running on v8 hardware
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "Armv7 -fno-exceptions"
-      command: "libcxx/utils/ci/run-buildbot armv7-no-exceptions"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders-linaro-arm"
-        arch: "armv8l" # Compiling for v7, running on v8 hardware
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-  - group: "AIX"
-    steps:
-    - label: "AIX (32-bit)"
-      command: "libcxx/utils/ci/run-buildbot aix"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          CC: "clang"
-          CXX: "clang++"
-          OBJECT_MODE: "32"
-      agents:
-          queue: libcxx-builders
-          os: aix
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-    - label: "AIX (64-bit)"
-      command: "libcxx/utils/ci/run-buildbot aix"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          CC: "clang"
-          CXX: "clang++"
-          OBJECT_MODE: "64"
-      agents:
-          queue: libcxx-builders
-          os: aix
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-  - group: ":freebsd: FreeBSD"
-    steps:
-    - label: "FreeBSD 13 amd64"
-      command: "libcxx/utils/ci/run-buildbot generic-cxx23"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      env:
-          CC: "clang16"
-          CXX: "clang++16"
-          ENABLE_STD_MODULES: "Off"
-      agents:
-        queue: "libcxx-builders"
-        os: "freebsd"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      timeout_in_minutes: 120
-
-  - group: ":android: Android"
-    steps:
-    - label: "Android 5.0, x86 NDK"
-      command: "libcxx/utils/ci/run-buildbot android-ndk-21-def-x86"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders"
-        os: "android"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      soft_fail: true
-      timeout_in_minutes: 120
-
-    - label: "Android 13, x86_64 NDK"
-      command: "libcxx/utils/ci/run-buildbot android-ndk-33-goog-x86_64"
-      artifact_paths:
-        - "**/test-results.xml"
-        - "**/*.abilist"
-      agents:
-        queue: "libcxx-builders"
-        os: "android"
-      retry:
-        automatic:
-          - exit_status: -1  # Agent was lost
-            limit: 2
-      soft_fail: true
-      timeout_in_minutes: 120

>From c9081f61b8285d38dcd32740c8b670112c414d1e Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Fri, 10 Nov 2023 08:31:09 -0500
Subject: [PATCH 2/3] Address review comments

---
 libcxx/utils/ci/buildkite-pipeline.yml | 31 +++++++++++++++-----------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml
index 4403da31814f509..2e65e34a1ab809d 100644
--- a/libcxx/utils/ci/buildkite-pipeline.yml
+++ b/libcxx/utils/ci/buildkite-pipeline.yml
@@ -93,7 +93,7 @@ environment_definitions:
       CXX: clang++-${LLVM_HEAD_VERSION}
       CMAKE: /opt/bin/cmake
 
-  _versioned_clang: &versioned_clang
+  _absolute_path_clang: &absolute_path_clang
     # Note modules require and absolute path for clang-scan-deps
     # https://github.com/llvm/llvm-project/issues/61006
     CC: /usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang
@@ -116,7 +116,7 @@ steps:
   command: libcxx/utils/ci/run-buildbot generic-cxx26
   env:
     <<: *common_env
-    <<: *versioned_clang
+    <<: *absolute_path_clang
   <<: *linux_agent
   <<: *common
 
@@ -150,7 +150,7 @@ steps:
   command: libcxx/utils/ci/run-buildbot generic-cxx23
   env:
     <<: *common_env
-    <<: *versioned_clang
+    <<: *absolute_path_clang
     ENABLE_STD_MODULES: 'On'
   <<: *linux_agent
   <<: *common
@@ -159,7 +159,7 @@ steps:
   command: libcxx/utils/ci/run-buildbot generic-cxx20
   env:
     <<: *common_env
-    <<: *versioned_clang
+    <<: *absolute_path_clang
     ENABLE_STD_MODULES: 'On'
   <<: *linux_agent
   <<: *common
@@ -276,7 +276,7 @@ steps:
   command: libcxx/utils/ci/run-buildbot generic-hardening-mode-extensive
   env:
     <<: *common_env
-    <<: *versioned_clang
+    <<: *absolute_path_clang
   <<: *linux_agent
   <<: *common
 
@@ -307,7 +307,7 @@ steps:
     command: libcxx/utils/ci/run-buildbot generic-no-threads
     env:
       <<: *common_env
-      <<: *versioned_clang
+      <<: *absolute_path_clang
     <<: *linux_agent
     <<: *common
 
@@ -316,7 +316,7 @@ steps:
     command: libcxx/utils/ci/run-buildbot generic-no-filesystem
     env:
       <<: *common_env
-      <<: *versioned_clang
+      <<: *absolute_path_clang
     <<: *linux_agent
     <<: *common
 
@@ -324,48 +324,53 @@ steps:
     command: libcxx/utils/ci/run-buildbot generic-no-random_device
     env:
       <<: *common_env
-      <<: *versioned_clang
+      <<: *absolute_path_clang
     <<: *linux_agent
     <<: *common
+
   - label: No locale
     command: libcxx/utils/ci/run-buildbot generic-no-localization
     env:
       <<: *common_env
-      <<: *versioned_clang
+      <<: *absolute_path_clang
     <<: *linux_agent
     <<: *common
+
   - label: No Unicode
     command: libcxx/utils/ci/run-buildbot generic-no-unicode
     env:
       <<: *common_env
-      <<: *versioned_clang
+      <<: *absolute_path_clang
     <<: *linux_agent
     <<: *common
+
   - label: No wide characters
     command: libcxx/utils/ci/run-buildbot generic-no-wide-characters
     env:
       <<: *common_env
-      <<: *versioned_clang
+      <<: *absolute_path_clang
     <<: *linux_agent
     <<: *common
+
   - label: No time zone database
     command: libcxx/utils/ci/run-buildbot generic-no-tzdb
     env:
       <<: *common_env
     <<: *linux_agent
     <<: *common
+
   - label: No experimental features
     command: libcxx/utils/ci/run-buildbot generic-no-experimental
     env:
       <<: *common_env
-      <<: *versioned_clang
+      <<: *absolute_path_clang
     <<: *linux_agent
     <<: *common
   - label: No exceptions
     command: libcxx/utils/ci/run-buildbot generic-no-exceptions
     env:
       <<: *common_env
-      <<: *versioned_clang
+      <<: *absolute_path_clang
     <<: *linux_agent
     <<: *common
 

>From 0029f98da93e04f1438c0f4ff6ea0f0523022505 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Mon, 13 Nov 2023 17:03:57 -0500
Subject: [PATCH 3/3] Final cleanup of requested changes

---
 libcxx/utils/ci/buildkite-pipeline.yml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml
index 2e65e34a1ab809d..7482938f65dc816 100644
--- a/libcxx/utils/ci/buildkite-pipeline.yml
+++ b/libcxx/utils/ci/buildkite-pipeline.yml
@@ -101,6 +101,11 @@ environment_definitions:
 
 
 steps:
+  #
+  # General testing with the default configuration, under all the supported
+  # Standard modes, with Clang and GCC. This catches most issues upfront.
+  # The goal of this step is to catch most issues while being very fast.
+  #
 - label: GCC ${GCC_STABLE_VERSION} / C++latest
   command: libcxx/utils/ci/run-buildbot generic-gcc
   env:



More information about the libcxx-commits mailing list