--- /dev/null
+#!/usr/bin/env bash
+#===----------------------------------------------------------------------===##
+#
+# 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 generates a Buildkite pipeline that triggers the libc++ CI
+# job(s) if needed.
+# See https://buildkite.com/docs/agent/v3/cli-pipeline#pipeline-format.
+#
+# Invoked by CI on pre-merge check for a commit.
+#
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+if ! git diff --name-only HEAD~1 | grep -q -E "libcxx/|libcxxabi/"; then
+ # libcxx is not affected
+ exit 0
+fi
+
+reviewID="$(git log --format=%B -n 1 | sed -nE 's/^Review-ID:[[:space:]]*(.+)$/\1/p')"
+if [[ "${reviewID}" != "" ]]; then
+ buildMessage="https://llvm.org/${reviewID}"
+else
+ buildMessage="Push to branch ${BUILDKITE_BRANCH}"
+fi
+
+
+cat <<EOF
+steps:
+ - trigger: "libcxx-ci"
+ build:
+ message: "${buildMessage}"
+ commit: "${BUILDKITE_COMMIT}"
+ branch: "${BUILDKITE_BRANCH}"
+EOF
+
+
--- /dev/null
+#!/usr/bin/env bash
+#===----------------------------------------------------------------------===##
+#
+# 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 generates a Buildkite pipeline that triggers the libc++ CI jobs.
+# See https://buildkite.com/docs/agent/v3/cli-pipeline#pipeline-format.
+#
+# Invoked by CI on full builds.
+#
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+cat <<EOF
+steps:
+ - trigger: "libcxx-ci"
+ build:
+ message: "${BUILDKITE_MESSAGE}"
+ commit: "${BUILDKITE_COMMIT}"
+ branch: "${BUILDKITE_BRANCH}"
+EOF
steps:
- label: "C++03"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-cxx03 | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-cxx03"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "C++11"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-cxx11 | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-cxx11"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "C++14"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-cxx14 | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-cxx14"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "C++17"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-cxx17 | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-cxx17"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "C++20"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-cxx2a | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-cxx2a"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "-fno-exceptions"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-noexceptions | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-noexceptions"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "GCC/C++20"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-gcc | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-gcc"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "ASAN"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-asan | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-asan"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "TSAN"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-tsan | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-tsan"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "UBSAN"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-ubsan | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-ubsan"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "With LLVM's libunwind"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-with_llvm_unwinder | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-with_llvm_unwinder"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "Single-threaded"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-singlethreaded | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-singlethreaded"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "No debug mode"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-nodebug | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-nodebug"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-builders"
- label: "No random device"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-no-random_device | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-no-random_device"
agents:
queue: "libcxx-builders"
- label: "MacOS C++20"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh generic-cxx2a | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh generic-cxx2a"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-macos-builders"
# Build with the configuration we use to generate libc++.dylib on Apple platforms
- label: "Apple system"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh x86_64-apple-system | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh x86_64-apple-system"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-macos-builders"
+
- label: "Apple system -fno-exceptions"
- command: "set -o pipefail && libcxx/utils/ci/run-buildbot.sh x86_64-apple-system-noexceptions | libcxx/utils/ci/phabricator-report"
+ command: "libcxx/utils/ci/run-buildbot.sh x86_64-apple-system-noexceptions"
+ artifact_paths:
+ - "**/test-results.xml"
agents:
queue: "libcxx-macos-builders"
generic-cxx03)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx03.cmake")
;;
generic-cxx11)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx11.cmake")
;;
generic-cxx14)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx14.cmake")
;;
generic-cxx17)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx17.cmake")
;;
generic-cxx2a)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx2a.cmake")
;;
generic-noexceptions)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-noexceptions.cmake")
;;
generic-32bit)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-32bits.cmake")
;;
generic-gcc)
export CXX=g++
# FIXME: Re-enable experimental testing on GCC. GCC cares about the order
# in which we link -lc++experimental, which causes issues.
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --param enable_experimental=False")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --param enable_experimental=False --xunit-xml-output test-results.xml")
;;
generic-asan)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-asan.cmake")
;;
generic-msan)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-msan.cmake")
;;
generic-tsan)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-tsan.cmake")
;;
generic-ubsan)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-ubsan.cmake")
;;
generic-with_llvm_unwinder)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-DLIBCXXABI_USE_LLVM_UNWINDER=ON")
;;
generic-singlethreaded)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-singlethreaded.cmake")
;;
generic-nodebug)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-nodebug.cmake")
;;
generic-no-random_device)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-random_device.cmake")
;;
x86_64-apple-system)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake")
;;
x86_64-apple-system-noexceptions)
export CC=clang
export CXX=clang++
- args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
+ args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --xunit-xml-output test-results.xml")
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake")
args+=("-DLIBCXX_ENABLE_EXCEPTIONS=OFF")
args+=("-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF")