[libcxx-commits] [llvm] [libcxx] Add libc++ github actions workflow to replace buildkite (PR #71836)

via libcxx-commits libcxx-commits at lists.llvm.org
Thu Nov 16 15:59:35 PST 2023


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

>From 8f3e29de407b642965faa2734ca0b6c5d697fcfa Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Tue, 14 Nov 2023 09:51:59 -0500
Subject: [PATCH 01/19] Add workflows for libc++ to replace buildkite builders

Also remove duplicate workflows for github
---
 .github/workflows/libcxx-build-and-test.yaml | 138 +++++
 libcxx/utils/ci/buildkite-pipeline-full.yml  | 570 +++++++++++++++++++
 libcxx/utils/ci/buildkite-pipeline.yml       | 278 ---------
 libcxx/utils/ci/run-buildbot                 |   4 +-
 4 files changed, 710 insertions(+), 280 deletions(-)
 create mode 100644 .github/workflows/libcxx-build-and-test.yaml
 create mode 100644 libcxx/utils/ci/buildkite-pipeline-full.yml

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
new file mode 100644
index 000000000000000..55e77d0b480b2c2
--- /dev/null
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -0,0 +1,138 @@
+name: Build and Test libc++
+
+on: pull_request
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
+  cancel-in-progress: true
+
+permissions:
+  checks: write
+
+env:
+  CMAKE: "/opt/bin/cmake"
+
+# Comment
+jobs:
+  stage1:
+    runs-on: libcxx-runners-16
+    continue-on-error: false
+    strategy:
+      fail-fast: true
+      matrix:
+        config: [ 'generic-cxx26', 'generic-cxx03', 'generic-modules' ]
+        cc: [ 'clang-18' ]
+        cxx: [ 'clang++-18' ]
+        include:
+          - config: 'generic-gcc'
+            cc: 'gcc-13'
+            cxx: 'g++-13'
+    steps:
+      - uses: actions/checkout at v4
+        with:
+          fetch-depth: 5
+      - name: ${{ matrix.config }}.${{ matrix.cxx }}
+        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+        env:
+          CC: ${{ matrix.cc }}
+          CXX: ${{ matrix.cxx }}
+      - uses: actions/upload-artifact at v3
+        if: always()
+        with:
+          name: ${{ matrix.config }}-${{ matrix.cxx }}-results
+          path: |
+            "**/test-results.xml"
+            "**/*.abilist"
+  stage2:
+    runs-on: libcxx-runners-16
+    needs: [ stage1  ]
+    continue-on-error: false
+    strategy:
+      fail-fast: true
+      max-parallel: 4
+      matrix:
+        config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
+                  'generic-cxx20', 'generic-cxx23' ]
+        include:
+          - config: 'generic-gcc-cxx11'
+            cc: 'gcc-13'
+            cxx: 'g++-13'
+          - config: 'generic-cxx23'
+            cc: 'clang-16'
+            cxx: 'clang++-16'
+          - config: 'generic-cxx23'
+            cc: 'clang-17'
+            cxx: 'clang++-17'
+    steps:
+      - uses: actions/checkout at v4
+        with:
+          fetch-depth: 5
+      - name: ${{ matrix.config }}
+        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+        env:
+          CC: 'clang-18'
+          CXX: 'clang++-18'
+      - uses: actions/upload-artifact at v3
+        if: always()
+        with:
+          name: ${{ matrix.config }}-results
+          path: |
+            "**/test-results.xml"
+            "**/*.abilist"
+  stage3-sanitizers:
+    runs-on: libcxx-runners-16
+    needs: [ stage1, stage2 ]
+    continue-on-error: false
+    strategy:
+      fail-fast: true
+      matrix:
+        config: [ 'generic-asan', 'generic-msan', 'generic-tsan', 'generic-ubsan' ]
+    steps:
+      - uses: actions/checkout at v4
+        with:
+          fetch-depth: 5
+      - name: ${{ matrix.config }}
+        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+        env:
+          CC: clang-18
+          CXX: clang++-18
+      - uses: actions/upload-artifact at v3
+        if: always()
+        with:
+          name: ${{ matrix.config }}-results
+          path: |
+            "**/test-results.xml"
+            "**/*.abilist"
+  stage3-remainder:
+    runs-on: libcxx-runners-8
+    needs: [ stage1, stage2 ]
+    continue-on-error: false
+    strategy:
+      fail-fast: true
+      max-parallel: 8
+      matrix:
+        config: [ 'generic-no-threads', 'generic-no-filesystem', 'generic-no-random_device',
+                 'generic-no-localization', 'generic-no-unicode', 'generic-no-wide-characters',
+                 'generic-no-experimental', 'generic-no-exceptions',
+                 'generic-abi-unstable',  'generic-hardening-mode-fast',
+                 'generic-hardening-mode-fast-with-abi-breaks', 'generic-hardening-mode-extensive',
+                'generic-hardening-mode-debug',
+                'generic-with_llvm_unwinder',
+                'generic-static', 'generic-merged'
+                'generic-modules-lsv', 'generic-no-tzdb']
+    steps:
+      - uses: actions/checkout at v4
+        with:
+          fetch-depth: 5
+      - name: ${{ matrix.config }}
+        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+        env:
+          CC: clang-18
+          CXX: clang++-18
+      - uses: actions/upload-artifact at v3
+        if: always()
+        with:
+          name: ${{ matrix.config }}-results
+          path: |
+            "**/test-results.xml"
+            "**/*.abilist"
+  
diff --git a/libcxx/utils/ci/buildkite-pipeline-full.yml b/libcxx/utils/ci/buildkite-pipeline-full.yml
new file mode 100644
index 000000000000000..7482938f65dc816
--- /dev/null
+++ b/libcxx/utils/ci/buildkite-pipeline-full.yml
@@ -0,0 +1,570 @@
+#===----------------------------------------------------------------------===##
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+#===----------------------------------------------------------------------===##
+
+#
+# This file describes the various pre-commit CI bots used to test libc++.
+#
+# This file should never contain logic -- all the logic must be offloaded
+# 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.
+#
+
+# The Linux CI runners use the nightly ToT build provided by the Docker image.
+# (Note the image isn't updated daily.) The LLVM_HEAD_VERSION contains that
+# version number. The Linux CI runners for GCC use the latest stable version.
+# Theses numbers are available in all runners, making it easier to update the
+# version number.
+env:
+    # LLVM POST-BRANCH bump version
+    # LLVM POST-BRANCH add compiler test for ToT - 1, e.g. "Clang 17"
+    # LLVM RELEASE bump remove compiler ToT - 3, e.g. "Clang 15"
+    LLVM_HEAD_VERSION: "18"   # Used compiler, update POST-BRANCH.
+    GCC_STABLE_VERSION: "13"
+
+definitions:
+  _common: &common
+    timeout_in_minutes: 120
+    retry:
+      automatic:
+        - exit_status: -1  # Agent was lost
+          limit: 2
+    artifact_paths:
+      - "**/test-results.xml"
+      - "**/*.abilist"
+      - "**/crash_diagnostics/*"
+
+# Define agents using YAML anchors to reduce duplication
+agents_definitions:
+  _linux_agent: &linux_agent
+    agents:
+      queue: libcxx-builders
+      os: linux
+  _windows_agent: &windows_agent
+    agents:
+      queue: windows
+
+  # Mac OS Builders
+  _mac_agent_x86: &mac_agent_x86
+    agents:
+      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
+
+  _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
+    CXX: /usr/lib/llvm-${LLVM_HEAD_VERSION}/bin/clang++
+
+
+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:
+    <<: *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
+    <<: *absolute_path_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
+  env:
+    <<: *common_env
+    <<: *absolute_path_clang
+    ENABLE_STD_MODULES: 'On'
+  <<: *linux_agent
+  <<: *common
+
+- label: C++20
+  command: libcxx/utils/ci/run-buildbot generic-cxx20
+  env:
+    <<: *common_env
+    <<: *absolute_path_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:
+      <<: *common_env
+    <<: *linux_agent
+    <<: *common
+
+  - label: TSAN
+    command: libcxx/utils/ci/run-buildbot generic-tsan
+    env:
+      <<: *common_env
+    <<: *linux_agent
+    <<: *common
+
+  - label: UBSAN
+    command: libcxx/utils/ci/run-buildbot generic-ubsan
+    env:
+      <<: *common_env
+    <<: *linux_agent
+    <<: *common
+
+  - label: MSAN
+    command: libcxx/utils/ci/run-buildbot generic-msan
+    env:
+      <<: *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
+    <<: *absolute_path_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:
+      <<: *common_env
+      <<: *absolute_path_clang
+    <<: *linux_agent
+    <<: *common
+
+
+  - label: No filesystem
+    command: libcxx/utils/ci/run-buildbot generic-no-filesystem
+    env:
+      <<: *common_env
+      <<: *absolute_path_clang
+    <<: *linux_agent
+    <<: *common
+
+  - label: No random device
+    command: libcxx/utils/ci/run-buildbot generic-no-random_device
+    env:
+      <<: *common_env
+      <<: *absolute_path_clang
+    <<: *linux_agent
+    <<: *common
+
+  - label: No locale
+    command: libcxx/utils/ci/run-buildbot generic-no-localization
+    env:
+      <<: *common_env
+      <<: *absolute_path_clang
+    <<: *linux_agent
+    <<: *common
+
+  - label: No Unicode
+    command: libcxx/utils/ci/run-buildbot generic-no-unicode
+    env:
+      <<: *common_env
+      <<: *absolute_path_clang
+    <<: *linux_agent
+    <<: *common
+
+  - label: No wide characters
+    command: libcxx/utils/ci/run-buildbot generic-no-wide-characters
+    env:
+      <<: *common_env
+      <<: *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
+      <<: *absolute_path_clang
+    <<: *linux_agent
+    <<: *common
+  - label: No exceptions
+    command: libcxx/utils/ci/run-buildbot generic-no-exceptions
+    env:
+      <<: *common_env
+      <<: *absolute_path_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
+
+    # 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
+      CXX: clang++
+      OBJECT_MODE: '32'
+    <<: *aix_agent
+    <<: *common
+
+  - label: AIX (64-bit)
+    command: libcxx/utils/ci/run-buildbot aix
+    env:
+      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: clang16
+      CXX: clang++16
+      ENABLE_STD_MODULES: 'Off'
+    agents:
+      queue: libcxx-builders
+      os: freebsd
+    <<: *common
+
+- 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
+
+  - label: Android 13, x86_64 NDK
+    command: libcxx/utils/ci/run-buildbot android-ndk-33-goog-x86_64
+    soft_fail: true
+    <<: *android_agent
+    <<: *common
+
+
+    # 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"
+    #   command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-11.0"
+    #   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
diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml
index 7482938f65dc816..39db2bfc473813a 100644
--- a/libcxx/utils/ci/buildkite-pipeline.yml
+++ b/libcxx/utils/ci/buildkite-pipeline.yml
@@ -101,147 +101,6 @@ 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:
-    <<: *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
-    <<: *absolute_path_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
-  env:
-    <<: *common_env
-    <<: *absolute_path_clang
-    ENABLE_STD_MODULES: 'On'
-  <<: *linux_agent
-  <<: *common
-
-- label: C++20
-  command: libcxx/utils/ci/run-buildbot generic-cxx20
-  env:
-    <<: *common_env
-    <<: *absolute_path_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:
-      <<: *common_env
-    <<: *linux_agent
-    <<: *common
-
-  - label: TSAN
-    command: libcxx/utils/ci/run-buildbot generic-tsan
-    env:
-      <<: *common_env
-    <<: *linux_agent
-    <<: *common
-
-  - label: UBSAN
-    command: libcxx/utils/ci/run-buildbot generic-ubsan
-    env:
-      <<: *common_env
-    <<: *linux_agent
-    <<: *common
-
-  - label: MSAN
-    command: libcxx/utils/ci/run-buildbot generic-msan
-    env:
-      <<: *common_env
-    <<: *linux_agent
-    <<: *common
-
-
 - label: Bootstrapping build
   command: libcxx/utils/ci/run-buildbot bootstrapping-build
   env:
@@ -249,143 +108,6 @@ steps:
   <<: *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
-    <<: *absolute_path_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:
-      <<: *common_env
-      <<: *absolute_path_clang
-    <<: *linux_agent
-    <<: *common
-
-
-  - label: No filesystem
-    command: libcxx/utils/ci/run-buildbot generic-no-filesystem
-    env:
-      <<: *common_env
-      <<: *absolute_path_clang
-    <<: *linux_agent
-    <<: *common
-
-  - label: No random device
-    command: libcxx/utils/ci/run-buildbot generic-no-random_device
-    env:
-      <<: *common_env
-      <<: *absolute_path_clang
-    <<: *linux_agent
-    <<: *common
-
-  - label: No locale
-    command: libcxx/utils/ci/run-buildbot generic-no-localization
-    env:
-      <<: *common_env
-      <<: *absolute_path_clang
-    <<: *linux_agent
-    <<: *common
-
-  - label: No Unicode
-    command: libcxx/utils/ci/run-buildbot generic-no-unicode
-    env:
-      <<: *common_env
-      <<: *absolute_path_clang
-    <<: *linux_agent
-    <<: *common
-
-  - label: No wide characters
-    command: libcxx/utils/ci/run-buildbot generic-no-wide-characters
-    env:
-      <<: *common_env
-      <<: *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
-      <<: *absolute_path_clang
-    <<: *linux_agent
-    <<: *common
-  - label: No exceptions
-    command: libcxx/utils/ci/run-buildbot generic-no-exceptions
-    env:
-      <<: *common_env
-      <<: *absolute_path_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:
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index fe99388a799be8a..d1b1e0f2e05fe47 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -137,7 +137,7 @@ function generate-cmake-base() {
           -DLIBUNWIND_ENABLE_WERROR=YES \
           -DLIBCXX_ENABLE_CLANG_TIDY=${ENABLE_CLANG_TIDY} \
           ${ENABLE_STD_MODULES} \
-          -DLLVM_LIT_ARGS="-sv --xunit-xml-output test-results.xml --timeout=1500 --time-tests" \
+          -DLLVM_LIT_ARGS="-v --xunit-xml-output test-results.xml --timeout=1500 --time-tests" \
           "${@}"
 }
 
@@ -372,7 +372,7 @@ bootstrapping-build)
           -DLLVM_TARGETS_TO_BUILD="host" \
           -DRUNTIMES_BUILD_ALLOW_DARWIN=ON \
           -DLLVM_ENABLE_ASSERTIONS=ON \
-          -DLLVM_LIT_ARGS="-sv --xunit-xml-output test-results.xml --timeout=1500 --time-tests"
+          -DLLVM_LIT_ARGS="-v --xunit-xml-output test-results.xml --timeout=1500 --time-tests"
 
     echo "+++ Running the libc++ and libc++abi tests"
     ${NINJA} -vC "${BUILD_DIR}" check-runtimes

>From 5428fe5ae46e01ae58439ec0cf59c31563721aa8 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Tue, 14 Nov 2023 14:57:11 -0500
Subject: [PATCH 02/19] address review comments

---
 .github/workflows/libcxx-build-and-test.yaml | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 55e77d0b480b2c2..2b6bdaec290591e 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -5,8 +5,6 @@ concurrency:
   group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
   cancel-in-progress: true
 
-permissions:
-  checks: write
 
 env:
   CMAKE: "/opt/bin/cmake"
@@ -28,8 +26,6 @@ jobs:
             cxx: 'g++-13'
     steps:
       - uses: actions/checkout at v4
-        with:
-          fetch-depth: 5
       - name: ${{ matrix.config }}.${{ matrix.cxx }}
         run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
         env:
@@ -64,8 +60,6 @@ jobs:
             cxx: 'clang++-17'
     steps:
       - uses: actions/checkout at v4
-        with:
-          fetch-depth: 5
       - name: ${{ matrix.config }}
         run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
         env:
@@ -88,8 +82,6 @@ jobs:
         config: [ 'generic-asan', 'generic-msan', 'generic-tsan', 'generic-ubsan' ]
     steps:
       - uses: actions/checkout at v4
-        with:
-          fetch-depth: 5
       - name: ${{ matrix.config }}
         run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
         env:
@@ -121,8 +113,6 @@ jobs:
                 'generic-modules-lsv', 'generic-no-tzdb']
     steps:
       - uses: actions/checkout at v4
-        with:
-          fetch-depth: 5
       - name: ${{ matrix.config }}
         run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
         env:

>From a60b18fbec30ee3f941e76aa9b0cdc3242283e7f Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Tue, 14 Nov 2023 17:04:38 -0500
Subject: [PATCH 03/19] attempt to fix broken workflow file

---
 .github/workflows/libcxx-build-and-test.yaml | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 2b6bdaec290591e..2bb2f7a606b76c9 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -103,14 +103,11 @@ jobs:
       max-parallel: 8
       matrix:
         config: [ 'generic-no-threads', 'generic-no-filesystem', 'generic-no-random_device',
-                 'generic-no-localization', 'generic-no-unicode', 'generic-no-wide-characters',
-                 'generic-no-experimental', 'generic-no-exceptions',
-                 'generic-abi-unstable',  'generic-hardening-mode-fast',
-                 'generic-hardening-mode-fast-with-abi-breaks', 'generic-hardening-mode-extensive',
-                'generic-hardening-mode-debug',
-                'generic-with_llvm_unwinder',
-                'generic-static', 'generic-merged'
-                'generic-modules-lsv', 'generic-no-tzdb']
+          'generic-no-localization', 'generic-no-unicode', 'generic-no-wide-characters',
+          'generic-no-experimental', 'generic-no-exceptions', 'generic-abi-unstable',  'generic-hardening-mode-fast',
+          'generic-hardening-mode-fast-with-abi-breaks', 'generic-hardening-mode-extensive',
+          'generic-hardening-mode-debug', 'generic-with_llvm_unwinder', 'generic-static', 'generic-merged',
+          'generic-modules-lsv', 'generic-no-tzdb' ]
     steps:
       - uses: actions/checkout at v4
       - name: ${{ matrix.config }}

>From c4437680c8655ecdc2d551d9deb19db52179941c Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Wed, 15 Nov 2023 16:18:45 -0500
Subject: [PATCH 04/19] Attempt to fix artifacts and change builder types for
 msan

---
 .github/workflows/libcxx-build-and-test.yaml | 26 ++++++++++++++------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 2bb2f7a606b76c9..8451a6fc9cc252e 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -70,8 +70,8 @@ jobs:
         with:
           name: ${{ matrix.config }}-results
           path: |
-            "**/test-results.xml"
-            "**/*.abilist"
+            **/test-results.xml
+            **/*.abilist
   stage3-sanitizers:
     runs-on: libcxx-runners-16
     needs: [ stage1, stage2 ]
@@ -79,7 +79,7 @@ jobs:
     strategy:
       fail-fast: true
       matrix:
-        config: [ 'generic-asan', 'generic-msan', 'generic-tsan', 'generic-ubsan' ]
+        config: [ 'generic-asan', 'generic-tsan', 'generic-ubsan' ]
     steps:
       - uses: actions/checkout at v4
       - name: ${{ matrix.config }}
@@ -92,10 +92,9 @@ jobs:
         with:
           name: ${{ matrix.config }}-results
           path: |
-            "**/test-results.xml"
-            "**/*.abilist"
+            **/test-results.xml
+            **/*.abilist
   stage3-remainder:
-    runs-on: libcxx-runners-8
     needs: [ stage1, stage2 ]
     continue-on-error: false
     strategy:
@@ -108,6 +107,17 @@ jobs:
           'generic-hardening-mode-fast-with-abi-breaks', 'generic-hardening-mode-extensive',
           'generic-hardening-mode-debug', 'generic-with_llvm_unwinder', 'generic-static', 'generic-merged',
           'generic-modules-lsv', 'generic-no-tzdb' ]
+        machine: [ 'libcxx-runners-8' ]
+      include:
+        - config: 'generic-asan'
+          machine: libcxx-runners-16
+        - config: 'generic-tsan'
+          machine: libcxx-runners-16
+        - config: 'generic-ubsan'
+          machine: libcxx-runners-16
+        - config: 'generic-msan'
+          machine: libcxx-runners-30
+    runs-on: ${{ matrix.machine }}
     steps:
       - uses: actions/checkout at v4
       - name: ${{ matrix.config }}
@@ -120,6 +130,6 @@ jobs:
         with:
           name: ${{ matrix.config }}-results
           path: |
-            "**/test-results.xml"
-            "**/*.abilist"
+            **/test-results.xml
+            **/*.abilist
   

>From 0d9ff6b6eec392d02d78888428342dff2fed9ad8 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Wed, 15 Nov 2023 16:21:33 -0500
Subject: [PATCH 05/19] Fix YAML block

---
 .github/workflows/libcxx-build-and-test.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 8451a6fc9cc252e..36e4fe5faad9efc 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -108,7 +108,7 @@ jobs:
           'generic-hardening-mode-debug', 'generic-with_llvm_unwinder', 'generic-static', 'generic-merged',
           'generic-modules-lsv', 'generic-no-tzdb' ]
         machine: [ 'libcxx-runners-8' ]
-      include:
+        include:
         - config: 'generic-asan'
           machine: libcxx-runners-16
         - config: 'generic-tsan'

>From c936f719b3bd264ad7f3a59510bb0519485fe8f7 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Wed, 15 Nov 2023 16:22:47 -0500
Subject: [PATCH 06/19] remove duplicated section of tests

---
 .github/workflows/libcxx-build-and-test.yaml | 24 +-------------------
 1 file changed, 1 insertion(+), 23 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 36e4fe5faad9efc..2f1e21c3579a071 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -72,29 +72,7 @@ jobs:
           path: |
             **/test-results.xml
             **/*.abilist
-  stage3-sanitizers:
-    runs-on: libcxx-runners-16
-    needs: [ stage1, stage2 ]
-    continue-on-error: false
-    strategy:
-      fail-fast: true
-      matrix:
-        config: [ 'generic-asan', 'generic-tsan', 'generic-ubsan' ]
-    steps:
-      - uses: actions/checkout at v4
-      - name: ${{ matrix.config }}
-        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
-        env:
-          CC: clang-18
-          CXX: clang++-18
-      - uses: actions/upload-artifact at v3
-        if: always()
-        with:
-          name: ${{ matrix.config }}-results
-          path: |
-            **/test-results.xml
-            **/*.abilist
-  stage3-remainder:
+  stage3:
     needs: [ stage1, stage2 ]
     continue-on-error: false
     strategy:

>From b9b08c4eaaa0b905ec3cbb306eb9520bbf3ed782 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Wed, 15 Nov 2023 16:57:22 -0500
Subject: [PATCH 07/19] change parallelism  for the second stage of builds

---
 .github/workflows/libcxx-build-and-test.yaml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 2f1e21c3579a071..169bdacee9c881b 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -39,12 +39,11 @@ jobs:
             "**/test-results.xml"
             "**/*.abilist"
   stage2:
-    runs-on: libcxx-runners-16
+    runs-on: libcxx-runners-8
     needs: [ stage1  ]
     continue-on-error: false
     strategy:
       fail-fast: true
-      max-parallel: 4
       matrix:
         config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
                   'generic-cxx20', 'generic-cxx23' ]

>From 0759055c18079d38a3b1fb6b58c15c83a7be7eda Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Wed, 15 Nov 2023 16:58:20 -0500
Subject: [PATCH 08/19] decrease resources for ubsan build

---
 .github/workflows/libcxx-build-and-test.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 169bdacee9c881b..63fb1e7465552bb 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -91,7 +91,7 @@ jobs:
         - config: 'generic-tsan'
           machine: libcxx-runners-16
         - config: 'generic-ubsan'
-          machine: libcxx-runners-16
+          machine: libcxx-runners-8
         - config: 'generic-msan'
           machine: libcxx-runners-30
     runs-on: ${{ matrix.machine }}

>From ec9840f166b0e3fb8274655f282357b2231e5f4d Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Wed, 15 Nov 2023 17:29:30 -0500
Subject: [PATCH 09/19] attempt to reenable non-verbose output from LIT

---
 libcxx/utils/ci/run-buildbot | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index d1b1e0f2e05fe47..fe99388a799be8a 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -137,7 +137,7 @@ function generate-cmake-base() {
           -DLIBUNWIND_ENABLE_WERROR=YES \
           -DLIBCXX_ENABLE_CLANG_TIDY=${ENABLE_CLANG_TIDY} \
           ${ENABLE_STD_MODULES} \
-          -DLLVM_LIT_ARGS="-v --xunit-xml-output test-results.xml --timeout=1500 --time-tests" \
+          -DLLVM_LIT_ARGS="-sv --xunit-xml-output test-results.xml --timeout=1500 --time-tests" \
           "${@}"
 }
 
@@ -372,7 +372,7 @@ bootstrapping-build)
           -DLLVM_TARGETS_TO_BUILD="host" \
           -DRUNTIMES_BUILD_ALLOW_DARWIN=ON \
           -DLLVM_ENABLE_ASSERTIONS=ON \
-          -DLLVM_LIT_ARGS="-v --xunit-xml-output test-results.xml --timeout=1500 --time-tests"
+          -DLLVM_LIT_ARGS="-sv --xunit-xml-output test-results.xml --timeout=1500 --time-tests"
 
     echo "+++ Running the libc++ and libc++abi tests"
     ${NINJA} -vC "${BUILD_DIR}" check-runtimes

>From 2fed2653084f571777718fbe5e300ee2605171c2 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 16 Nov 2023 17:51:34 -0500
Subject: [PATCH 10/19] Address review comments

---
 .github/workflows/libcxx-build-and-test.yaml | 99 ++++++++++++++++----
 1 file changed, 79 insertions(+), 20 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 63fb1e7465552bb..ccb21c1a76fbe87 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -1,6 +1,19 @@
+# This file defines pre-commit CI for libc++ [bla bla bla].
+#
+# We split the configurations in multiple stages with the intent of saving compute time
+# when a job fails early in the pipeline. This is why the jobs are marked as `continue-on-error: false`.
+# We try to run the CI configurations with the most signal in the first stage.
+#
+# TODO: Explain the fail-fast behavior (enabled for the first stage but not the other ones).
 name: Build and Test libc++
-
-on: pull_request
+on:
+  pull_request:
+    paths:
+      - 'libcxx/**'
+      - 'libcxxabi/**'
+      - 'libunwind/**'
+      - 'runtimes/**'
+      - 'cmake/**'
 concurrency:
   group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
   cancel-in-progress: true
@@ -8,8 +21,22 @@ concurrency:
 
 env:
   CMAKE: "/opt/bin/cmake"
+  # LLVM POST-BRANCH bump version
+  # LLVM POST-BRANCH add compiler test for ToT - 1, e.g. "Clang 17"
+  # LLVM RELEASE bump remove compiler ToT - 3, e.g. "Clang 15"
+  LLVM_HEAD_VERSION: "18"   # Used compiler, update POST-BRANCH.
+  LLVM_PREVIOUS_VERSION: "17"
+  LLVM_OLDEST_VERSION: "16"
+  GCC_STABLE_VERSION: "13"
+  LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}"
+  CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics"
+
 
-# Comment
+# Job breakdown:
+#   The jobs run in three stages to save resources while providing actionalable feedback as soon as possible.
+#   The stages are broken down as follows:
+#   - stage1:
+#     Stage1 contains the bots that most often fail.
 jobs:
   stage1:
     runs-on: libcxx-runners-16
@@ -18,12 +45,14 @@ jobs:
       fail-fast: true
       matrix:
         config: [ 'generic-cxx26', 'generic-cxx03', 'generic-modules' ]
-        cc: [ 'clang-18' ]
-        cxx: [ 'clang++-18' ]
+        cc: [ 'clang-${LLVM_HEAD_VERSION}' ]
+        cxx: [ 'clang++-${LLVM_HEAD_VERSION}' ]
+        clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc'
-            cc: 'gcc-13'
-            cxx: 'g++-13'
+            cc: 'gcc-$GCC_STABLE_VERSION'
+            cxx: 'g++-$GCC_STABLE_VERSION'
+            clang_tidy: 'OFF'
     steps:
       - uses: actions/checkout at v4
       - name: ${{ matrix.config }}.${{ matrix.cxx }}
@@ -31,13 +60,17 @@ jobs:
         env:
           CC: ${{ matrix.cc }}
           CXX: ${{ matrix.cxx }}
+          ENABLE_CLANG_TIDY: ${{ matrix.clang_tidy }}
       - uses: actions/upload-artifact at v3
         if: always()
         with:
           name: ${{ matrix.config }}-${{ matrix.cxx }}-results
           path: |
-            "**/test-results.xml"
-            "**/*.abilist"
+            **/test-results.xml
+            **/*.abilist
+            **/CMakeError.log
+            **/CMakeOutput.log
+            **/crash_diagnostics/*
   stage2:
     runs-on: libcxx-runners-8
     needs: [ stage1  ]
@@ -47,30 +80,40 @@ jobs:
       matrix:
         config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
                   'generic-cxx20', 'generic-cxx23' ]
+        cc: [ 'clang-${LLVM_HEAD_VERSION}' ]
+        cxx: [ 'clang++-${LLVM_HEAD_VERSION}' ]
+        clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc-cxx11'
             cc: 'gcc-13'
             cxx: 'g++-13'
+            clang_tidy: 'ON'
           - config: 'generic-cxx23'
-            cc: 'clang-16'
-            cxx: 'clang++-16'
+            cc: 'clang-${LLVM_OLDEST_VERSION}'
+            cxx: 'clang++-${LLVM_OLDEST_VERSION}'
+            clang_tidy: 'OFF'
           - config: 'generic-cxx23'
-            cc: 'clang-17'
-            cxx: 'clang++-17'
+            cc: 'clang-${LLVM_PREVIOUS_VERSION}'
+            cxx: 'clang++-${LLVM_PREVIOUS_VERSION}'
+            clang_tidy: 'OFF'
     steps:
       - uses: actions/checkout at v4
       - name: ${{ matrix.config }}
         run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
         env:
-          CC: 'clang-18'
-          CXX: 'clang++-18'
+          CC: ${{ matrix.cc }}
+          CXX: ${{ matrix.cxx }}
+          ENABLE_CLANG_TIDY: ${{ matrix.clang_tidy }}
       - uses: actions/upload-artifact at v3
-        if: always()
+        if: always()  # Upload artifacts even if the build or test suite fails
         with:
           name: ${{ matrix.config }}-results
           path: |
             **/test-results.xml
             **/*.abilist
+            **/CMakeError.log
+            **/CMakeOutput.log
+            **/crash_diagnostics/*
   stage3:
     needs: [ stage1, stage2 ]
     continue-on-error: false
@@ -80,28 +123,41 @@ jobs:
       matrix:
         config: [ 'generic-no-threads', 'generic-no-filesystem', 'generic-no-random_device',
           'generic-no-localization', 'generic-no-unicode', 'generic-no-wide-characters',
-          'generic-no-experimental', 'generic-no-exceptions', 'generic-abi-unstable',  'generic-hardening-mode-fast',
-          'generic-hardening-mode-fast-with-abi-breaks', 'generic-hardening-mode-extensive',
+          'generic-no-experimental', 'generic-no-exceptions', 'generic-abi-unstable',
+          'generic-hardening-mode-fast',
+          'generic-hardening-mode-fast-with-abi-breaks',
+          'generic-hardening-mode-extensive',
           'generic-hardening-mode-debug', 'generic-with_llvm_unwinder', 'generic-static', 'generic-merged',
           'generic-modules-lsv', 'generic-no-tzdb' ]
         machine: [ 'libcxx-runners-8' ]
+        std_modules: [ 'OFF' ]
         include:
+        - config: 'generic-cxx26'
+          machine: libcxx-runners-8
+          std_modules: 'ON'
         - config: 'generic-asan'
           machine: libcxx-runners-16
+          std_modules: 'OFF'
         - config: 'generic-tsan'
           machine: libcxx-runners-16
+          std_modules: 'OFF'
         - config: 'generic-ubsan'
           machine: libcxx-runners-8
+          std_modules: 'OFF'
+        # Use a larger machine for MSAN to avoid timeout and memory allocation issues.
         - config: 'generic-msan'
           machine: libcxx-runners-30
+          std_modules: 'OFF'
     runs-on: ${{ matrix.machine }}
     steps:
       - uses: actions/checkout at v4
       - name: ${{ matrix.config }}
         run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
         env:
-          CC: clang-18
-          CXX: clang++-18
+          CC: clang-${LLVM_HEAD_VERSION}
+          CXX: clang++-${LLVM_HEAD_VERSION}
+          ENABLE_CLANG_TIDY: "OFF"
+          ENABLE_STD_MODULES: ${{ matrix.std_modules }}
       - uses: actions/upload-artifact at v3
         if: always()
         with:
@@ -109,4 +165,7 @@ jobs:
           path: |
             **/test-results.xml
             **/*.abilist
+            **/CMakeError.log
+            **/CMakeOutput.log
+            **/crash_diagnostics/*
   

>From 01d5e0cba86c1a9c0ef817ec1118e650529ccbec Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 16 Nov 2023 18:01:59 -0500
Subject: [PATCH 11/19] attempt different version of env expansion

---
 .github/workflows/libcxx-build-and-test.yaml | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index ccb21c1a76fbe87..2b8999fee76da7b 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -45,13 +45,13 @@ jobs:
       fail-fast: true
       matrix:
         config: [ 'generic-cxx26', 'generic-cxx03', 'generic-modules' ]
-        cc: [ 'clang-${LLVM_HEAD_VERSION}' ]
-        cxx: [ 'clang++-${LLVM_HEAD_VERSION}' ]
+        cc: [ clang-${{ env.LLVM_HEAD_VERSION }} ]
+        cxx: [ clang++-${{ env.LLVM_HEAD_VERSION }} ]
         clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc'
-            cc: 'gcc-$GCC_STABLE_VERSION'
-            cxx: 'g++-$GCC_STABLE_VERSION'
+            cc: gcc-${{ env.GCC_STABLE_VERSION }}
+            cxx: g++-${{ env.GCC_STABLE_VERSION }}
             clang_tidy: 'OFF'
     steps:
       - uses: actions/checkout at v4
@@ -80,8 +80,8 @@ jobs:
       matrix:
         config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
                   'generic-cxx20', 'generic-cxx23' ]
-        cc: [ 'clang-${LLVM_HEAD_VERSION}' ]
-        cxx: [ 'clang++-${LLVM_HEAD_VERSION}' ]
+        cc: [ clang-${{ env.LLVM_HEAD_VERSION }} ]
+        cxx: [ clang++-${{ env.LLVM_HEAD_VERSION }} ]
         clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc-cxx11'
@@ -89,12 +89,12 @@ jobs:
             cxx: 'g++-13'
             clang_tidy: 'ON'
           - config: 'generic-cxx23'
-            cc: 'clang-${LLVM_OLDEST_VERSION}'
-            cxx: 'clang++-${LLVM_OLDEST_VERSION}'
+            cc: clang-${{ env.LLVM_OLDEST_VERSION }}
+            cxx: clang++-${{ env.LLVM_OLDEST_VERSION }}
             clang_tidy: 'OFF'
           - config: 'generic-cxx23'
-            cc: 'clang-${LLVM_PREVIOUS_VERSION}'
-            cxx: 'clang++-${LLVM_PREVIOUS_VERSION}'
+            cc: clang-${{ env.LLVM_PREVIOUS_VERSION }}
+            cxx: clang++-${{ env.LLVM_PREVIOUS_VERSION }}
             clang_tidy: 'OFF'
     steps:
       - uses: actions/checkout at v4
@@ -154,8 +154,8 @@ jobs:
       - name: ${{ matrix.config }}
         run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
         env:
-          CC: clang-${LLVM_HEAD_VERSION}
-          CXX: clang++-${LLVM_HEAD_VERSION}
+          CC: clang-${{ env.LLVM_HEAD_VERSION }}
+          CXX: clang++-${{ env.LLVM_HEAD_VERSION }}
           ENABLE_CLANG_TIDY: "OFF"
           ENABLE_STD_MODULES: ${{ matrix.std_modules }}
       - uses: actions/upload-artifact at v3

>From dcf38b99581d3bc987bbbf79317cf65d96613bcb Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 16 Nov 2023 18:03:22 -0500
Subject: [PATCH 12/19] attempt different version of env expansion v2

---
 .github/workflows/libcxx-build-and-test.yaml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 2b8999fee76da7b..1ec9bc863635442 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -45,13 +45,13 @@ jobs:
       fail-fast: true
       matrix:
         config: [ 'generic-cxx26', 'generic-cxx03', 'generic-modules' ]
-        cc: [ clang-${{ env.LLVM_HEAD_VERSION }} ]
-        cxx: [ clang++-${{ env.LLVM_HEAD_VERSION }} ]
+        cc: [ 'clang-${{ env.LLVM_HEAD_VERSION }}' ]
+        cxx: [ 'clang++-${{ env.LLVM_HEAD_VERSION }}' ]
         clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc'
-            cc: gcc-${{ env.GCC_STABLE_VERSION }}
-            cxx: g++-${{ env.GCC_STABLE_VERSION }}
+            cc: 'gcc-${{ env.GCC_STABLE_VERSION }}'
+            cxx: 'g++-${{ env.GCC_STABLE_VERSION }}'
             clang_tidy: 'OFF'
     steps:
       - uses: actions/checkout at v4

>From fbbf2f8f26dcd122b9e449c2f2ac81df1eb6d84c Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 16 Nov 2023 18:04:19 -0500
Subject: [PATCH 13/19] attempt different version of env expansion v3

---
 .github/workflows/libcxx-build-and-test.yaml | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 1ec9bc863635442..1a230aa13e00e76 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -80,8 +80,8 @@ jobs:
       matrix:
         config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
                   'generic-cxx20', 'generic-cxx23' ]
-        cc: [ clang-${{ env.LLVM_HEAD_VERSION }} ]
-        cxx: [ clang++-${{ env.LLVM_HEAD_VERSION }} ]
+        cc: [ 'clang-${{ env.LLVM_HEAD_VERSION }}' ]
+        cxx: [ 'clang++-${{ env.LLVM_HEAD_VERSION }}'' ]
         clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc-cxx11'
@@ -89,12 +89,12 @@ jobs:
             cxx: 'g++-13'
             clang_tidy: 'ON'
           - config: 'generic-cxx23'
-            cc: clang-${{ env.LLVM_OLDEST_VERSION }}
-            cxx: clang++-${{ env.LLVM_OLDEST_VERSION }}
+            cc: 'clang-${{ env.LLVM_OLDEST_VERSION }}'
+            cxx: 'clang++-${{ env.LLVM_OLDEST_VERSION }}'
             clang_tidy: 'OFF'
           - config: 'generic-cxx23'
-            cc: clang-${{ env.LLVM_PREVIOUS_VERSION }}
-            cxx: clang++-${{ env.LLVM_PREVIOUS_VERSION }}
+            cc: 'clang-${{ env.LLVM_PREVIOUS_VERSION }}'
+            cxx: 'clang++-${{ env.LLVM_PREVIOUS_VERSION }}'
             clang_tidy: 'OFF'
     steps:
       - uses: actions/checkout at v4

>From 1266bed9501f6bf76f3ed17a105502b54420d0ea Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 16 Nov 2023 18:04:58 -0500
Subject: [PATCH 14/19] attempt different version of env expansion v3

---
 .github/workflows/libcxx-build-and-test.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 1a230aa13e00e76..16ff7c8c8e44688 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -81,7 +81,7 @@ jobs:
         config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
                   'generic-cxx20', 'generic-cxx23' ]
         cc: [ 'clang-${{ env.LLVM_HEAD_VERSION }}' ]
-        cxx: [ 'clang++-${{ env.LLVM_HEAD_VERSION }}'' ]
+        cxx: [ 'clang++-${{ env.LLVM_HEAD_VERSION }}' ]
         clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc-cxx11'

>From bfae22d7caec71158e0af88c908a650acceb1e01 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 16 Nov 2023 18:07:31 -0500
Subject: [PATCH 15/19] attempt different version of env expansion v3

---
 .github/workflows/libcxx-build-and-test.yaml | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 16ff7c8c8e44688..bcef8860ad8fbbd 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -45,13 +45,13 @@ jobs:
       fail-fast: true
       matrix:
         config: [ 'generic-cxx26', 'generic-cxx03', 'generic-modules' ]
-        cc: [ 'clang-${{ env.LLVM_HEAD_VERSION }}' ]
-        cxx: [ 'clang++-${{ env.LLVM_HEAD_VERSION }}' ]
+        cc: [ 'clang-$LLVM_HEAD_VERSION' ]
+        cxx: [ 'clang++-$LLVM_HEAD_VERSION' ]
         clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc'
-            cc: 'gcc-${{ env.GCC_STABLE_VERSION }}'
-            cxx: 'g++-${{ env.GCC_STABLE_VERSION }}'
+            cc: 'gcc-$GCC_STABLE_VERSION'
+            cxx: 'g++-$GCC_STABLE_VERSION'
             clang_tidy: 'OFF'
     steps:
       - uses: actions/checkout at v4
@@ -80,8 +80,8 @@ jobs:
       matrix:
         config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
                   'generic-cxx20', 'generic-cxx23' ]
-        cc: [ 'clang-${{ env.LLVM_HEAD_VERSION }}' ]
-        cxx: [ 'clang++-${{ env.LLVM_HEAD_VERSION }}' ]
+        cc: [ 'clang-$LLVM_HEAD_VERSION' ]
+        cxx: [ 'clang++-$LLVM_HEAD_VERSION' ]
         clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc-cxx11'
@@ -89,12 +89,12 @@ jobs:
             cxx: 'g++-13'
             clang_tidy: 'ON'
           - config: 'generic-cxx23'
-            cc: 'clang-${{ env.LLVM_OLDEST_VERSION }}'
-            cxx: 'clang++-${{ env.LLVM_OLDEST_VERSION }}'
+            cc: 'clang-$LLVM_OLDEST_VERSION'
+            cxx: 'clang++-$LLVM_OLDEST_VERSION'
             clang_tidy: 'OFF'
           - config: 'generic-cxx23'
-            cc: 'clang-${{ env.LLVM_PREVIOUS_VERSION }}'
-            cxx: 'clang++-${{ env.LLVM_PREVIOUS_VERSION }}'
+            cc: 'clang-$LLVM_PREVIOUS_VERSION'
+            cxx: 'clang++-$LLVM_PREVIOUS_VERSION'
             clang_tidy: 'OFF'
     steps:
       - uses: actions/checkout at v4
@@ -154,8 +154,8 @@ jobs:
       - name: ${{ matrix.config }}
         run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
         env:
-          CC: clang-${{ env.LLVM_HEAD_VERSION }}
-          CXX: clang++-${{ env.LLVM_HEAD_VERSION }}
+          CC: clang-$LLVM_HEAD_VERSION
+          CXX: clang++-$LLVM_HEAD_VERSION
           ENABLE_CLANG_TIDY: "OFF"
           ENABLE_STD_MODULES: ${{ matrix.std_modules }}
       - uses: actions/upload-artifact at v3

>From 0bf7610377ce09298eead1a3c052e2b29b4cb508 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 16 Nov 2023 18:10:16 -0500
Subject: [PATCH 16/19] remove fail fast from stage3

---
 .github/workflows/libcxx-build-and-test.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index bcef8860ad8fbbd..328101352c4722f 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -118,7 +118,7 @@ jobs:
     needs: [ stage1, stage2 ]
     continue-on-error: false
     strategy:
-      fail-fast: true
+      fail-fast: false
       max-parallel: 8
       matrix:
         config: [ 'generic-no-threads', 'generic-no-filesystem', 'generic-no-random_device',

>From 182d06197802368dad4823475576e96a814833c8 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 16 Nov 2023 18:14:43 -0500
Subject: [PATCH 17/19] attempt different version of env expansion v5

---
 .github/workflows/libcxx-build-and-test.yaml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 328101352c4722f..ba1a0b6ed5ba206 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -25,6 +25,7 @@ env:
   # LLVM POST-BRANCH add compiler test for ToT - 1, e.g. "Clang 17"
   # LLVM RELEASE bump remove compiler ToT - 3, e.g. "Clang 15"
   LLVM_HEAD_VERSION: "18"   # Used compiler, update POST-BRANCH.
+  CLANG_HEAD: "clang++-${LLVM_HEAD_VERSION}"
   LLVM_PREVIOUS_VERSION: "17"
   LLVM_OLDEST_VERSION: "16"
   GCC_STABLE_VERSION: "13"
@@ -45,8 +46,8 @@ jobs:
       fail-fast: true
       matrix:
         config: [ 'generic-cxx26', 'generic-cxx03', 'generic-modules' ]
-        cc: [ 'clang-$LLVM_HEAD_VERSION' ]
-        cxx: [ 'clang++-$LLVM_HEAD_VERSION' ]
+        cc: [ clang-${{ env.LLVM_HEAD_VERSION }} ]
+        cxx: [ clang++-${{ env.LLVM_HEAD_VERSION }} ]
         clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc'

>From 46ae48376c074d6ae75df19be0c1820fed283011 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 16 Nov 2023 18:15:27 -0500
Subject: [PATCH 18/19] attempt different version of env expansion v6

---
 .github/workflows/libcxx-build-and-test.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index ba1a0b6ed5ba206..88efb6ef5472fb6 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -46,7 +46,7 @@ jobs:
       fail-fast: true
       matrix:
         config: [ 'generic-cxx26', 'generic-cxx03', 'generic-modules' ]
-        cc: [ clang-${{ env.LLVM_HEAD_VERSION }} ]
+        cc: [ ${{ env.CLANG_HEAD }} ]
         cxx: [ clang++-${{ env.LLVM_HEAD_VERSION }} ]
         clang_tidy: [ 'ON' ]
         include:

>From 9588c6a044430215d188e937133c7aec243cb2b0 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 16 Nov 2023 18:59:16 -0500
Subject: [PATCH 19/19] add workflow file to pull request trigger

---
 .github/workflows/libcxx-build-and-test.yaml | 31 ++++++++++----------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 88efb6ef5472fb6..736d6413f7e9588 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -14,6 +14,8 @@ on:
       - 'libunwind/**'
       - 'runtimes/**'
       - 'cmake/**'
+      - '.github/workflows/libcxx-build-and-test.yaml'
+
 concurrency:
   group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
   cancel-in-progress: true
@@ -25,11 +27,10 @@ env:
   # LLVM POST-BRANCH add compiler test for ToT - 1, e.g. "Clang 17"
   # LLVM RELEASE bump remove compiler ToT - 3, e.g. "Clang 15"
   LLVM_HEAD_VERSION: "18"   # Used compiler, update POST-BRANCH.
-  CLANG_HEAD: "clang++-${LLVM_HEAD_VERSION}"
   LLVM_PREVIOUS_VERSION: "17"
   LLVM_OLDEST_VERSION: "16"
   GCC_STABLE_VERSION: "13"
-  LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}"
+  LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-18"
   CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics"
 
 
@@ -46,13 +47,13 @@ jobs:
       fail-fast: true
       matrix:
         config: [ 'generic-cxx26', 'generic-cxx03', 'generic-modules' ]
-        cc: [ ${{ env.CLANG_HEAD }} ]
-        cxx: [ clang++-${{ env.LLVM_HEAD_VERSION }} ]
+        cc: [  clang-18 ]
+        cxx: [ clang++-18 ]
         clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc'
-            cc: 'gcc-$GCC_STABLE_VERSION'
-            cxx: 'g++-$GCC_STABLE_VERSION'
+            cc: 'gcc-13'
+            cxx: 'g++-13'
             clang_tidy: 'OFF'
     steps:
       - uses: actions/checkout at v4
@@ -74,15 +75,15 @@ jobs:
             **/crash_diagnostics/*
   stage2:
     runs-on: libcxx-runners-8
-    needs: [ stage1  ]
+    needs: [ stage1 ]
     continue-on-error: false
     strategy:
       fail-fast: true
       matrix:
         config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
                   'generic-cxx20', 'generic-cxx23' ]
-        cc: [ 'clang-$LLVM_HEAD_VERSION' ]
-        cxx: [ 'clang++-$LLVM_HEAD_VERSION' ]
+        cc: [ 'clang-18' ]
+        cxx: [ 'clang++-18' ]
         clang_tidy: [ 'ON' ]
         include:
           - config: 'generic-gcc-cxx11'
@@ -90,12 +91,12 @@ jobs:
             cxx: 'g++-13'
             clang_tidy: 'ON'
           - config: 'generic-cxx23'
-            cc: 'clang-$LLVM_OLDEST_VERSION'
-            cxx: 'clang++-$LLVM_OLDEST_VERSION'
+            cc: 'clang-16'
+            cxx: 'clang++-16'
             clang_tidy: 'OFF'
           - config: 'generic-cxx23'
-            cc: 'clang-$LLVM_PREVIOUS_VERSION'
-            cxx: 'clang++-$LLVM_PREVIOUS_VERSION'
+            cc: 'clang-17'
+            cxx: 'clang++-17'
             clang_tidy: 'OFF'
     steps:
       - uses: actions/checkout at v4
@@ -155,8 +156,8 @@ jobs:
       - name: ${{ matrix.config }}
         run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
         env:
-          CC: clang-$LLVM_HEAD_VERSION
-          CXX: clang++-$LLVM_HEAD_VERSION
+          CC: clang-18
+          CXX: clang++-18
           ENABLE_CLANG_TIDY: "OFF"
           ENABLE_STD_MODULES: ${{ matrix.std_modules }}
       - uses: actions/upload-artifact at v3



More information about the libcxx-commits mailing list