blob: 5a74a01fa6f901ac94afe499d3961336e3ae3ecd [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.
#
steps:
- label: "Format"
command: "libcxx/utils/ci/run-buildbot check-format"
artifact_paths:
- "**/clang-format.patch"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
soft_fail:
- exit_status: 1
- label: "Generated output"
command: "libcxx/utils/ci/run-buildbot check-generated-output"
artifact_paths:
- "**/generated_output.patch"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
# All jobs defined before this `wait` will run whenever a CI job is started.
# Jobs defined after the `wait` will run only if all the jobs above
# succeeded. The build failures before this `wait` can be fixed by running
# the proper scripts or clang-format. We use this to reduce the load on the
# testers and avoid running builds that we know fail anyway.
- wait
- label: "C++03"
command: "libcxx/utils/ci/run-buildbot generic-cxx03"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "C++11"
command: "libcxx/utils/ci/run-buildbot generic-cxx11"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "C++14"
command: "libcxx/utils/ci/run-buildbot generic-cxx14"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "C++17"
command: "libcxx/utils/ci/run-buildbot generic-cxx17"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "C++20"
command: "libcxx/utils/ci/run-buildbot generic-cxx20"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "C++2b"
command: "libcxx/utils/ci/run-buildbot generic-cxx2b"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "-fno-exceptions"
command: "libcxx/utils/ci/run-buildbot generic-noexceptions"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Static libraries"
command: "libcxx/utils/ci/run-buildbot generic-static"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "GCC/C++20"
command: "libcxx/utils/ci/run-buildbot generic-gcc"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "ASAN"
command: "libcxx/utils/ci/run-buildbot generic-asan"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "TSAN"
command: "libcxx/utils/ci/run-buildbot generic-tsan"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "UBSAN"
command: "libcxx/utils/ci/run-buildbot generic-ubsan"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "With LLVM's libunwind"
command: "libcxx/utils/ci/run-buildbot generic-with_llvm_unwinder"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Single-threaded"
command: "libcxx/utils/ci/run-buildbot generic-singlethreaded"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "No debug mode"
command: "libcxx/utils/ci/run-buildbot generic-no-debug"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "No Filesystem"
command: "libcxx/utils/ci/run-buildbot generic-no-filesystem"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "No random device"
command: "libcxx/utils/ci/run-buildbot generic-no-random_device"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "No locale"
command: "libcxx/utils/ci/run-buildbot generic-no-localization"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "MacOS C++20"
command: "libcxx/utils/ci/run-buildbot generic-cxx20"
artifact_paths:
- "**/test-results.xml"
- "**/*.abilist"
agents:
queue: "libcxx-builders-macos"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Benchmarks"
command: "libcxx/utils/ci/run-buildbot benchmarks"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Documentation"
command: "libcxx/utils/ci/run-buildbot documentation"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Legacy standalone build"
command: "libcxx/utils/ci/run-buildbot legacy-standalone"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Unified standalone build"
command: "libcxx/utils/ci/run-buildbot unified-standalone"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Runtimes build"
command: "libcxx/utils/ci/run-buildbot runtimes-build"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Windows"
# TODO: The CI runner doesn't have bash in the path currently. Once it
# has that, remove the absolute path and just call 'bash' here.
command: "\"\\Program Files\\Git\\usr\\bin\\bash\" libcxx/utils/ci/run-buildbot generic-win"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "windows"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
# All jobs defined before this `wait` will run whenever a CI job is started.
# Jobs defined after the `wait` will run only if all the jobs above succeeded.
# We use this to reduce the load on testers that have more constrained resources
# and avoid running builds that we know fail anyway.
- wait
# Build with the configuration we use to generate libc++.dylib on Apple platforms
- label: "Apple system"
command: "libcxx/utils/ci/run-buildbot x86_64-apple-system"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders-macos"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Apple system -fno-exceptions"
command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-noexceptions"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders-macos"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
# Test back-deployment to older Apple platforms
- label: "Apple back-deployment macosx10.9"
command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-backdeployment-10.9"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders-macos10.15" # TODO: For now, we're running the back-deployment tests for 10.9 on 10.15, because we don't have proper 10.9 machines
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Apple back-deployment macosx10.15"
command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-backdeployment-10.15"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders-macos10.15"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "AArch64"
command: "libcxx/utils/ci/run-buildbot aarch64"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders-linaro-arm"
arch: "aarch64"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "AArch64 -fno-exceptions"
command: "libcxx/utils/ci/run-buildbot aarch64-noexceptions"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders-linaro-arm"
arch: "aarch64"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Armv8"
command: "libcxx/utils/ci/run-buildbot armv8"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders-linaro-arm"
arch: "armv8l"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Armv8 -fno-exceptions"
command: "libcxx/utils/ci/run-buildbot armv8-noexceptions"
artifact_paths:
- "**/test-results.xml"
agents:
queue: "libcxx-builders-linaro-arm"
arch: "armv8l"
retry:
automatic:
- exit_status: -1 # Agent was lost
limit: 2
- label: "Armv7"
command: "libcxx/utils/ci/run-buildbot armv7"
artifact_paths:
- "**/test-results.xml"
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
- label: "Armv7 -fno-exceptions"
command: "libcxx/utils/ci/run-buildbot armv7-noexceptions"
artifact_paths:
- "**/test-results.xml"
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