#===----------------------------------------------------------------------===## # # 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/*" 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} _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: - group: ':mac: Apple' steps: - label: MacOS x86_64 command: libcxx/utils/ci/run-buildbot generic-cxx23 agents: queue: libcxx-builders os: macos arch: x86_64 <<: *common - label: MacOS arm64 command: libcxx/utils/ci/run-buildbot generic-cxx23 agents: queue: libcxx-builders os: macos arch: arm64 <<: *common - label: MacOS with Modules command: libcxx/utils/ci/run-buildbot generic-modules agents: queue: libcxx-builders os: macos <<: *common - label: MacOS with C++03 command: libcxx/utils/ci/run-buildbot generic-cxx03 agents: queue: libcxx-builders os: macos <<: *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 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 <<: *common - label: Apple back-deployment macosx10.13 command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.13 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 <<: *common - label: Apple back-deployment macosx10.15 command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.15 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 <<: *common - label: Apple back-deployment with hardening enabled command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-hardened-11.0 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 <<: *common - group: ARM steps: - label: AArch64 command: libcxx/utils/ci/run-buildbot aarch64 agents: queue: libcxx-builders-linaro-arm arch: aarch64 <<: *common - label: AArch64 -fno-exceptions command: libcxx/utils/ci/run-buildbot aarch64-no-exceptions agents: queue: libcxx-builders-linaro-arm arch: aarch64 <<: *common - label: Armv8 command: libcxx/utils/ci/run-buildbot armv8 agents: queue: libcxx-builders-linaro-arm arch: armv8l <<: *common - label: Armv8 -fno-exceptions command: libcxx/utils/ci/run-buildbot armv8-no-exceptions agents: queue: libcxx-builders-linaro-arm arch: armv8l <<: *common - label: Armv7 command: libcxx/utils/ci/run-buildbot armv7 agents: queue: libcxx-builders-linaro-arm arch: armv8l <<: *common - label: Armv7 -fno-exceptions command: libcxx/utils/ci/run-buildbot armv7-no-exceptions agents: queue: libcxx-builders-linaro-arm arch: armv8l <<: *common - label: Armv7-M picolibc command: libcxx/utils/ci/run-buildbot armv7m-picolibc agents: queue: libcxx-builders-linaro-arm arch: aarch64 <<: *common - label: Armv7-M picolibc -fno-exceptions command: libcxx/utils/ci/run-buildbot armv7m-picolibc-no-exceptions agents: queue: libcxx-builders-linaro-arm arch: aarch64 <<: *common - group: AIX steps: - label: AIX (32-bit) command: libcxx/utils/ci/run-buildbot aix env: CC: clang CXX: clang++ OBJECT_MODE: '32' agents: queue: libcxx-builders os: aix <<: *common - label: AIX (64-bit) command: libcxx/utils/ci/run-buildbot aix env: CC: clang CXX: clang++ OBJECT_MODE: '64' agents: queue: libcxx-builders os: aix <<: *common - group: ':freebsd: FreeBSD' steps: - label: FreeBSD 13 amd64 command: libcxx/utils/ci/run-buildbot generic-cxx26 env: CC: clang17 CXX: clang++17 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 agents: queue: libcxx-builders os: android <<: *common - label: Android 13, x86_64 NDK command: libcxx/utils/ci/run-buildbot android-ndk-33-goog-x86_64 agents: queue: libcxx-builders os: android <<: *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