xref: /openbsd-src/gnu/llvm/libcxx/utils/ci/buildkite-pipeline-clang.yml (revision 4bdff4bed0e3d54e55670334c7d0077db4170f86)
1*4bdff4beSrobert#===----------------------------------------------------------------------===##
2*4bdff4beSrobert#
3*4bdff4beSrobert# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*4bdff4beSrobert# See https://llvm.org/LICENSE.txt for license information.
5*4bdff4beSrobert# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*4bdff4beSrobert#
7*4bdff4beSrobert#===----------------------------------------------------------------------===##
8*4bdff4beSrobert
9*4bdff4beSrobert#
10*4bdff4beSrobert# This file describes the various pre-commit CI bots used to test Clang against
11*4bdff4beSrobert# libc++ under various configurations. Unlike the usual libc++ CI pipeline,
12*4bdff4beSrobert# which aims to test libc++ itself, this pipeline aims to test Clang by
13*4bdff4beSrobert# compiling libc++ and running its test suite against the just-built Clang,
14*4bdff4beSrobert# in various configurations.
15*4bdff4beSrobert#
16*4bdff4beSrobertenv:
17*4bdff4beSrobert    LLVM_HEAD_VERSION: "16"
18*4bdff4beSrobertsteps:
19*4bdff4beSrobert  - label: "Building clang"
20*4bdff4beSrobert    commands:
21*4bdff4beSrobert      - "mkdir install"
22*4bdff4beSrobert      - "cmake -S llvm -B build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=install -DLLVM_ENABLE_PROJECTS=\"clang;compiler-rt\""
23*4bdff4beSrobert      - "ninja -C build install-clang install-clang-resource-headers"
24*4bdff4beSrobert      - "buildkite-agent artifact upload 'install/**/*'"
25*4bdff4beSrobert    env:
26*4bdff4beSrobert        CC: "clang-${LLVM_HEAD_VERSION}"
27*4bdff4beSrobert        CXX: "clang++-${LLVM_HEAD_VERSION}"
28*4bdff4beSrobert    agents:
29*4bdff4beSrobert      queue: "libcxx-builders"
30*4bdff4beSrobert      os: "linux"
31*4bdff4beSrobert    retry:
32*4bdff4beSrobert      automatic:
33*4bdff4beSrobert        - exit_status: -1  # Agent was lost
34*4bdff4beSrobert          limit: 2
35*4bdff4beSrobert    timeout_in_minutes: 120
36*4bdff4beSrobert
37*4bdff4beSrobert  - wait
38*4bdff4beSrobert
39*4bdff4beSrobert  - label: "C++03"
40*4bdff4beSrobert    commands:
41*4bdff4beSrobert      - "buildkite-agent artifact download 'install/**' ."
42*4bdff4beSrobert      - "export CC=$(pwd)/install/bin/clang"
43*4bdff4beSrobert      - "export CXX=$(pwd)/install/bin/clang++"
44*4bdff4beSrobert      - "chmod +x install/bin/clang install/bin/clang++"
45*4bdff4beSrobert      - "libcxx/utils/ci/run-buildbot generic-cxx03"
46*4bdff4beSrobert    artifact_paths:
47*4bdff4beSrobert      - "**/test-results.xml"
48*4bdff4beSrobert      - "**/crash_diagnostics/*"
49*4bdff4beSrobert    env:
50*4bdff4beSrobert        LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}" # TODO: Should we build that from scratch?
51*4bdff4beSrobert        CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics"
52*4bdff4beSrobert    agents:
53*4bdff4beSrobert      queue: "libcxx-builders"
54*4bdff4beSrobert      os: "linux"
55*4bdff4beSrobert    retry:
56*4bdff4beSrobert      automatic:
57*4bdff4beSrobert        - exit_status: -1  # Agent was lost
58*4bdff4beSrobert          limit: 2
59*4bdff4beSrobert    timeout_in_minutes: 120
60*4bdff4beSrobert
61*4bdff4beSrobert  - label: "C++2b"
62*4bdff4beSrobert    commands:
63*4bdff4beSrobert      - "buildkite-agent artifact download 'install/**' ."
64*4bdff4beSrobert      - "export CC=$(pwd)/install/bin/clang"
65*4bdff4beSrobert      - "export CXX=$(pwd)/install/bin/clang++"
66*4bdff4beSrobert      - "chmod +x install/bin/clang install/bin/clang++"
67*4bdff4beSrobert      - "libcxx/utils/ci/run-buildbot generic-cxx2b"
68*4bdff4beSrobert    artifact_paths:
69*4bdff4beSrobert      - "**/test-results.xml"
70*4bdff4beSrobert      - "**/crash_diagnostics/*"
71*4bdff4beSrobert    env:
72*4bdff4beSrobert        LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}" # TODO: Should we build that from scratch?
73*4bdff4beSrobert        CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics"
74*4bdff4beSrobert    agents:
75*4bdff4beSrobert      queue: "libcxx-builders"
76*4bdff4beSrobert      os: "linux"
77*4bdff4beSrobert    retry:
78*4bdff4beSrobert      automatic:
79*4bdff4beSrobert        - exit_status: -1  # Agent was lost
80*4bdff4beSrobert          limit: 2
81*4bdff4beSrobert    timeout_in_minutes: 120
82*4bdff4beSrobert
83*4bdff4beSrobert  - label: "Modules"
84*4bdff4beSrobert    commands:
85*4bdff4beSrobert      - "buildkite-agent artifact download 'install/**' ."
86*4bdff4beSrobert      - "export CC=$(pwd)/install/bin/clang"
87*4bdff4beSrobert      - "export CXX=$(pwd)/install/bin/clang++"
88*4bdff4beSrobert      - "chmod +x install/bin/clang install/bin/clang++"
89*4bdff4beSrobert      - "libcxx/utils/ci/run-buildbot generic-modules"
90*4bdff4beSrobert    artifact_paths:
91*4bdff4beSrobert      - "**/test-results.xml"
92*4bdff4beSrobert      - "**/crash_diagnostics/*"
93*4bdff4beSrobert    env:
94*4bdff4beSrobert        LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}" # TODO: Should we build that from scratch?
95*4bdff4beSrobert        CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics"
96*4bdff4beSrobert    agents:
97*4bdff4beSrobert      queue: "libcxx-builders"
98*4bdff4beSrobert      os: "linux"
99*4bdff4beSrobert    retry:
100*4bdff4beSrobert      automatic:
101*4bdff4beSrobert        - exit_status: -1  # Agent was lost
102*4bdff4beSrobert          limit: 2
103*4bdff4beSrobert    timeout_in_minutes: 120
104