#===----------------------------------------------------------------------===##
#
# 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
