[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