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