#===----------------------------------------------------------------------===## # # 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 Clang against # libc++ under various configurations. Unlike the usual libc++ CI pipeline, # which aims to test libc++ itself, this pipeline aims to test Clang by # compiling libc++ and running its test suite against the just-built Clang, # in various configurations. # env: # LLVM RELEASE bump version LLVM_HEAD_VERSION: "17" steps: - label: "Format" commands: - "! grep -rnI '[[:blank:]]$' clang/lib clang/include clang/docs || false" agents: queue: "libcxx-builders" os: "linux" retry: automatic: - exit_status: -1 # Agent was lost limit: 2 timeout_in_minutes: 120 - wait - label: "Building clang" commands: - "mkdir install" # We use Release here to avoid including debug information. Otherwise, the clang binary is very large, which # is problematic because we need to upload the artifacts for other jobs to use. This may seem like nothing, # but with the number of jobs we run daily, this can result in thousands of GB of network I/O. - "cmake -S llvm -B build -G Ninja -DCMAKE_CXX_COMPILER_LAUNCHER=\"ccache\" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -DLLVM_ENABLE_PROJECTS=\"clang;compiler-rt\"" - "ninja -C build install-clang install-clang-resource-headers" - "ccache -s" - "tar -cJvf install.tar.xz install/" - "buildkite-agent artifact upload --debug install.tar.xz" env: CC: "clang-${LLVM_HEAD_VERSION}" CXX: "clang++-${LLVM_HEAD_VERSION}" agents: queue: "libcxx-builders" os: "linux" retry: automatic: - exit_status: -1 # Agent was lost limit: 2 timeout_in_minutes: 120 - wait - label: "C++03" commands: - "buildkite-agent artifact download install.tar.xz ." - "tar -xvf install.tar.xz" - "export CC=$(pwd)/install/bin/clang" - "export CXX=$(pwd)/install/bin/clang++" - "chmod +x install/bin/clang install/bin/clang++" - "libcxx/utils/ci/run-buildbot generic-cxx03" artifact_paths: - "**/test-results.xml" - "**/crash_diagnostics/*" env: LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}" # TODO: Should we build that from scratch? 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 - label: "C++26" commands: - "buildkite-agent artifact download install.tar.xz ." - "tar -xvf install.tar.xz" - "export CC=$(pwd)/install/bin/clang" - "export CXX=$(pwd)/install/bin/clang++" - "chmod +x install/bin/clang install/bin/clang++" - "libcxx/utils/ci/run-buildbot generic-cxx26" artifact_paths: - "**/test-results.xml" - "**/crash_diagnostics/*" env: LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}" # TODO: Should we build that from scratch? 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 - label: "Modules" commands: - "buildkite-agent artifact download install.tar.xz ." - "tar -xvf install.tar.xz" - "export CC=$(pwd)/install/bin/clang" - "export CXX=$(pwd)/install/bin/clang++" - "chmod +x install/bin/clang install/bin/clang++" - "libcxx/utils/ci/run-buildbot generic-modules" artifact_paths: - "**/test-results.xml" - "**/crash_diagnostics/*" env: LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}" # TODO: Should we build that from scratch? 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