| #===----------------------------------------------------------------------===## |
| # |
| # 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 |
| |
| # |
| # 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++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 |
| |
| - 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: "GCC 11 / C++latest" |
| command: "libcxx/utils/ci/run-buildbot generic-gcc" |
| 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 |
| |
| # |
| # All other supported configurations of libc++. |
| # |
| - wait |
| |
| # Tests with the supported compilers. |
| - label: "GCC 11 / C++11" |
| command: "libcxx/utils/ci/run-buildbot generic-gcc-cxx11" |
| 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 |
| |
| - label: "Clang 12" |
| command: "libcxx/utils/ci/run-buildbot generic-clang-12" |
| 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 |
| |
| - label: "Clang 13" |
| command: "libcxx/utils/ci/run-buildbot generic-clang-13" |
| 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 |
| |
| # Tests with the sanitizers. |
| - label: "ASAN" |
| command: "libcxx/utils/ci/run-buildbot generic-asan" |
| 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 |
| |
| - label: "TSAN" |
| command: "libcxx/utils/ci/run-buildbot generic-tsan" |
| 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 |
| |
| - label: "UBSAN" |
| command: "libcxx/utils/ci/run-buildbot generic-ubsan" |
| 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 |
| |
| # 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" |
| agents: |
| queue: "libcxx-builders" |
| os: "linux" |
| retry: |
| automatic: |
| - exit_status: -1 # Agent was lost |
| limit: 2 |
| timeout_in_minutes: 120 |
| |
| - label: "Legacy Lit configuration" |
| command: "libcxx/utils/ci/run-buildbot legacy-test-config" |
| 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 |
| |
| - label: "Legacy standalone build" |
| command: "libcxx/utils/ci/run-buildbot legacy-standalone" |
| 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 |
| |
| - label: "Legacy LLVM_ENABLE_PROJECTS build" |
| command: "libcxx/utils/ci/run-buildbot legacy-project-build" |
| 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 |
| |
| # Tests with various build configurations. |
| - label: "-fno-exceptions" |
| command: "libcxx/utils/ci/run-buildbot generic-noexceptions" |
| 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 |
| |
| - label: "Modular build" |
| command: "libcxx/utils/ci/run-buildbot generic-modules" |
| 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 |
| |
| - label: "Static libraries" |
| command: "libcxx/utils/ci/run-buildbot generic-static" |
| 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 |
| |
| - 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 iterators" |
| command: "libcxx/utils/ci/run-buildbot generic-debug-iterators" |
| 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" |
| agents: |
| queue: "libcxx-builders" |
| os: "linux" |
| retry: |
| automatic: |
| - exit_status: -1 # Agent was lost |
| limit: 2 |
| timeout_in_minutes: 120 |
| |
| - label: "32 bit" |
| command: "libcxx/utils/ci/run-buildbot generic-32bit" |
| artifact_paths: |
| - "**/test-results.xml" |
| 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: "Single-threaded" |
| command: "libcxx/utils/ci/run-buildbot generic-singlethreaded" |
| 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 |
| |
| - label: "No debug mode" |
| command: "libcxx/utils/ci/run-buildbot generic-no-debug" |
| 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 |
| |
| - label: "No filesystem" |
| command: "libcxx/utils/ci/run-buildbot generic-no-filesystem" |
| 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 |
| |
| - label: "No random device" |
| command: "libcxx/utils/ci/run-buildbot generic-no-random_device" |
| 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 |
| |
| - label: "No locale" |
| command: "libcxx/utils/ci/run-buildbot generic-no-localization" |
| 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 |
| |
| - label: "No Unicode" |
| command: "libcxx/utils/ci/run-buildbot generic-no-unicode" |
| 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 |
| |
| - label: "No wide characters" |
| command: "libcxx/utils/ci/run-buildbot generic-no-wide-characters" |
| 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 |
| |
| # Other non-testing CI jobs |
| - label: "Benchmarks" |
| command: "libcxx/utils/ci/run-buildbot benchmarks" |
| 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 |
| |
| - 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 |
| |
| # Tests on non-Unix platforms |
| - label: "Clang-cl (DLL)" |
| command: "bash libcxx/utils/ci/run-buildbot clang-cl-dll" |
| artifact_paths: |
| - "**/test-results.xml" |
| 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" |
| agents: |
| queue: "windows" |
| retry: |
| automatic: |
| - exit_status: -1 # Agent was lost |
| limit: 2 |
| timeout_in_minutes: 120 |
| |
| - label: "MinGW (DLL)" |
| command: "bash libcxx/utils/ci/run-buildbot mingw-dll" |
| artifact_paths: |
| - "**/test-results.xml" |
| agents: |
| queue: "windows" |
| retry: |
| automatic: |
| - exit_status: -1 # Agent was lost |
| limit: 2 |
| timeout_in_minutes: 120 |
| |
| - label: "MinGW (Static)" |
| command: "bash libcxx/utils/ci/run-buildbot mingw-static" |
| artifact_paths: |
| - "**/test-results.xml" |
| agents: |
| queue: "windows" |
| retry: |
| automatic: |
| - exit_status: -1 # Agent was lost |
| limit: 2 |
| timeout_in_minutes: 120 |
| |
| - 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" |
| agents: |
| queue: "libcxx-builders" |
| os: "macos" |
| 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" |
| agents: |
| queue: "libcxx-builders" |
| os: "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 |
| 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" |
| agents: |
| queue: "libcxx-builders" |
| os: "macos10.15" |
| arch: "x86_64" |
| retry: |
| automatic: |
| - exit_status: -1 # Agent was lost |
| limit: 2 |
| timeout_in_minutes: 120 |
| |
| - 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 |
| timeout_in_minutes: 120 |
| |
| - 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 |
| timeout_in_minutes: 120 |
| |
| - 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 |
| timeout_in_minutes: 120 |
| |
| - 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 |
| timeout_in_minutes: 120 |
| |
| - 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 |
| timeout_in_minutes: 120 |
| |
| - 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 |
| timeout_in_minutes: 120 |
| |
| - label: "AIX (32-bit)" |
| command: "libcxx/utils/ci/run-buildbot aix" |
| artifact_paths: |
| - "**/test-results.xml" |
| retry: |
| automatic: |
| - exit_status: -1 # Agent was lost |
| limit: 2 |
| 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" |
| env: |
| OBJECT_MODE: "64" |
| agents: |
| queue: libcxx-builders |
| os: aix |
| retry: |
| automatic: |
| - exit_status: -1 # Agent was lost |
| limit: 2 |
| timeout_in_minutes: 120 |