blob: d0be2b9daa0d75ec4c77c37f23905d8d5c9bc0e6 [file] [log] [blame]
#===----------------------------------------------------------------------===##
#
# 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.
#
steps:
#
# Light pre-commit tests for things like formatting or when people forget
# to update generated files.
#
- label: "Format"
command: "libcxx/utils/ci/run-buildbot check-format"
artifact_paths:
- "**/clang-format.patch"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
soft_fail:
- exit_status: 1
timeout_in_minutes: 120
- label: "Generated output"
command: "libcxx/utils/ci/run-buildbot check-generated-output"
artifact_paths:
- "**/generated_output.patch"
- "**/generated_output.status"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "Documentation"
command: "libcxx/utils/ci/run-buildbot documentation"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
#
# 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.
#
- wait
- label: "C++2b"
command: "libcxx/utils/ci/run-buildbot generic-cxx2b"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
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"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "C++03"
command: "libcxx/utils/ci/run-buildbot generic-cxx03"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
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"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "GCC 12 / C++latest"
command: "libcxx/utils/ci/run-buildbot generic-gcc"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
#
# All other supported configurations of libc++.
#
- wait
- label: "C++20"
command: "libcxx/utils/ci/run-buildbot generic-cxx20"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "C++17"
command: "libcxx/utils/ci/run-buildbot generic-cxx17"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "C++14"
command: "libcxx/utils/ci/run-buildbot generic-cxx14"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
# Tests with the supported compilers.
- label: "GCC 12 / C++11"
command: "libcxx/utils/ci/run-buildbot generic-gcc-cxx11"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "Clang 13"
command: "libcxx/utils/ci/run-buildbot generic-clang-13"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "Clang 14"
command: "libcxx/utils/ci/run-buildbot generic-clang-14"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
# Tests with the sanitizers.
- group: "Sanitizers"
steps:
- label: "ASAN"
command: "libcxx/utils/ci/run-buildbot generic-asan"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
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"
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"
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"
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"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- group: "Legacy"
steps:
- label: "Legacy Lit configuration"
command: "libcxx/utils/ci/run-buildbot legacy-test-config"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "Legacy LLVM_ENABLE_PROJECTS build"
command: "libcxx/utils/ci/run-buildbot legacy-project-build"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
# Tests with various build configurations.
- label: "Static libraries"
command: "libcxx/utils/ci/run-buildbot generic-static"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "Shared library with merged ABI and unwinder libraries"
command: "libcxx/utils/ci/run-buildbot generic-merged"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "Assertions enabled"
command: "libcxx/utils/ci/run-buildbot generic-assertions"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "Debug mode"
command: "libcxx/utils/ci/run-buildbot generic-debug-mode"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "No transitive includes"
command: "libcxx/utils/ci/run-buildbot generic-no-transitive-includes"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "With LLVM's libunwind"
command: "libcxx/utils/ci/run-buildbot generic-with_llvm_unwinder"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- group: "Parts disabled"
steps:
- label: "No threads"
command: "libcxx/utils/ci/run-buildbot generic-no-threads"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "No filesystem"
command: "libcxx/utils/ci/run-buildbot generic-no-filesystem"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "No random device"
command: "libcxx/utils/ci/run-buildbot generic-no-random_device"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "No locale"
command: "libcxx/utils/ci/run-buildbot generic-no-localization"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "No Unicode"
command: "libcxx/utils/ci/run-buildbot generic-no-unicode"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "No wide characters"
command: "libcxx/utils/ci/run-buildbot generic-no-wide-characters"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "No experimental features"
command: "libcxx/utils/ci/run-buildbot generic-no-experimental"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
os: "linux"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- label: "No exceptions"
command: "libcxx/utils/ci/run-buildbot generic-noexceptions"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
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"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
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"
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: "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: ":apple: Apple"
steps:
- label: "MacOS x86_64"
command: "libcxx/utils/ci/run-buildbot generic-cxx20"
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-cxx20"
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
# 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
# Test back-deployment to older Apple platforms
- label: "Apple back-deployment macosx10.9"
command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.9"
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: "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"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120
- 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
- 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-noexceptions"
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-noexceptions"
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-noexceptions"
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:
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:
OBJECT_MODE: "64"
agents:
queue: libcxx-builders
os: aix
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
timeout_in_minutes: 120