diff --git a/libcxx/utils/ci/buildkite-pipeline-premerge.sh b/libcxx/utils/ci/buildkite-pipeline-premerge.sh new file mode 100755 --- /dev/null +++ b/libcxx/utils/ci/buildkite-pipeline-premerge.sh @@ -0,0 +1,25 @@ +#!/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 + +cat "${DIR}/buildkite-pipeline.yml" diff --git a/libcxx/utils/ci/buildkite-pipeline-snapshot.sh b/libcxx/utils/ci/buildkite-pipeline-snapshot.sh new file mode 100755 --- /dev/null +++ b/libcxx/utils/ci/buildkite-pipeline-snapshot.sh @@ -0,0 +1,18 @@ +#!/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 "${DIR}/buildkite-pipeline.yml" diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml --- a/libcxx/utils/ci/buildkite-pipeline.yml +++ b/libcxx/utils/ci/buildkite-pipeline.yml @@ -16,81 +16,114 @@ 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: "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" diff --git a/libcxx/utils/ci/run-buildbot.sh b/libcxx/utils/ci/run-buildbot.sh --- a/libcxx/utils/ci/run-buildbot.sh +++ b/libcxx/utils/ci/run-buildbot.sh @@ -21,43 +21,43 @@ 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) @@ -65,60 +65,60 @@ 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") ;; 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")