xref: /netbsd-src/external/apache2/llvm/dist/libcxx/utils/ci/buildkite-pipeline.yml (revision 4d6fc14bc9b0c5bf3e30be318c143ee82cadd108)
1#===----------------------------------------------------------------------===##
2#
3# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4# See https://llvm.org/LICENSE.txt for license information.
5# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6#
7#===----------------------------------------------------------------------===##
8
9#
10# This file describes the various pre-commit CI bots used to test libc++.
11#
12# This file should never contain logic -- all the logic must be offloaded
13# into scripts. This is critical to being able to reproduce CI issues outside
14# of the CI environment, which is important for debugging.
15#
16# It is also worth noting that this script is split into several sections, the
17# goal being to reduce the load on testers when a commit is known to fail.
18#
19
20steps:
21  #
22  # Light pre-commit tests for things like formatting or when people forget
23  # to update generated files.
24  #
25  - label: "Format"
26    command: "libcxx/utils/ci/run-buildbot check-format"
27    artifact_paths:
28      - "**/clang-format.patch"
29    agents:
30      queue: "libcxx-builders"
31    retry:
32      automatic:
33        - exit_status: -1  # Agent was lost
34          limit: 2
35    soft_fail:
36        - exit_status: 1
37
38  - label: "Generated output"
39    command: "libcxx/utils/ci/run-buildbot check-generated-output"
40    artifact_paths:
41      - "**/generated_output.patch"
42    agents:
43      queue: "libcxx-builders"
44    retry:
45      automatic:
46        - exit_status: -1  # Agent was lost
47          limit: 2
48
49  #
50  # General testing with the default configuration, under all the supported
51  # Standard modes, with Clang and GCC. This catches most issues upfront.
52  # The goal of this step is to catch most issues while being very fast.
53  #
54  - wait
55
56  - label: "C++2b"
57    command: "libcxx/utils/ci/run-buildbot generic-cxx2b"
58    artifact_paths:
59      - "**/test-results.xml"
60      - "**/*.abilist"
61    agents:
62      queue: "libcxx-builders"
63    retry:
64      automatic:
65        - exit_status: -1  # Agent was lost
66          limit: 2
67
68  - label: "C++20"
69    command: "libcxx/utils/ci/run-buildbot generic-cxx20"
70    artifact_paths:
71      - "**/test-results.xml"
72      - "**/*.abilist"
73    agents:
74      queue: "libcxx-builders"
75    retry:
76      automatic:
77        - exit_status: -1  # Agent was lost
78          limit: 2
79
80  - label: "C++17"
81    command: "libcxx/utils/ci/run-buildbot generic-cxx17"
82    artifact_paths:
83      - "**/test-results.xml"
84      - "**/*.abilist"
85    agents:
86      queue: "libcxx-builders"
87    retry:
88      automatic:
89        - exit_status: -1  # Agent was lost
90          limit: 2
91
92  - label: "C++14"
93    command: "libcxx/utils/ci/run-buildbot generic-cxx14"
94    artifact_paths:
95      - "**/test-results.xml"
96      - "**/*.abilist"
97    agents:
98      queue: "libcxx-builders"
99    retry:
100      automatic:
101        - exit_status: -1  # Agent was lost
102          limit: 2
103  - label: "C++11"
104    command: "libcxx/utils/ci/run-buildbot generic-cxx11"
105    artifact_paths:
106      - "**/test-results.xml"
107      - "**/*.abilist"
108    agents:
109      queue: "libcxx-builders"
110    retry:
111      automatic:
112        - exit_status: -1  # Agent was lost
113          limit: 2
114
115  - label: "C++03"
116    command: "libcxx/utils/ci/run-buildbot generic-cxx03"
117    artifact_paths:
118      - "**/test-results.xml"
119      - "**/*.abilist"
120    agents:
121      queue: "libcxx-builders"
122    retry:
123      automatic:
124        - exit_status: -1  # Agent was lost
125          limit: 2
126
127  - label: "GCC/C++20"
128    command: "libcxx/utils/ci/run-buildbot generic-gcc"
129    artifact_paths:
130      - "**/test-results.xml"
131    agents:
132      queue: "libcxx-builders"
133    retry:
134      automatic:
135        - exit_status: -1  # Agent was lost
136          limit: 2
137
138  #
139  # All other supported configurations of libc++.
140  #
141  - wait
142
143  - label: "-fno-exceptions"
144    command: "libcxx/utils/ci/run-buildbot generic-noexceptions"
145    artifact_paths:
146      - "**/test-results.xml"
147    agents:
148      queue: "libcxx-builders"
149    retry:
150      automatic:
151        - exit_status: -1  # Agent was lost
152          limit: 2
153
154  - label: "Static libraries"
155    command: "libcxx/utils/ci/run-buildbot generic-static"
156    artifact_paths:
157      - "**/test-results.xml"
158    agents:
159      queue: "libcxx-builders"
160    retry:
161      automatic:
162        - exit_status: -1  # Agent was lost
163          limit: 2
164
165  - label: "Debug iterators"
166    command: "libcxx/utils/ci/run-buildbot generic-debug-iterators"
167    artifact_paths:
168      - "**/test-results.xml"
169      - "**/*.abilist"
170    agents:
171      queue: "libcxx-builders"
172    retry:
173      automatic:
174        - exit_status: -1  # Agent was lost
175          limit: 2
176
177  - label: "ASAN"
178    command: "libcxx/utils/ci/run-buildbot generic-asan"
179    artifact_paths:
180      - "**/test-results.xml"
181    agents:
182      queue: "libcxx-builders"
183    retry:
184      automatic:
185        - exit_status: -1  # Agent was lost
186          limit: 2
187
188  - label: "TSAN"
189    command: "libcxx/utils/ci/run-buildbot generic-tsan"
190    artifact_paths:
191      - "**/test-results.xml"
192    agents:
193      queue: "libcxx-builders"
194    retry:
195      automatic:
196        - exit_status: -1  # Agent was lost
197          limit: 2
198
199  - label: "UBSAN"
200    command: "libcxx/utils/ci/run-buildbot generic-ubsan"
201    artifact_paths:
202      - "**/test-results.xml"
203    agents:
204      queue: "libcxx-builders"
205    retry:
206      automatic:
207        - exit_status: -1  # Agent was lost
208          limit: 2
209
210  - label: "With LLVM's libunwind"
211    command: "libcxx/utils/ci/run-buildbot generic-with_llvm_unwinder"
212    artifact_paths:
213      - "**/test-results.xml"
214    agents:
215      queue: "libcxx-builders"
216    retry:
217      automatic:
218        - exit_status: -1  # Agent was lost
219          limit: 2
220
221  - label: "Single-threaded"
222    command: "libcxx/utils/ci/run-buildbot generic-singlethreaded"
223    artifact_paths:
224      - "**/test-results.xml"
225    agents:
226      queue: "libcxx-builders"
227    retry:
228      automatic:
229        - exit_status: -1  # Agent was lost
230          limit: 2
231
232  - label: "No debug mode"
233    command: "libcxx/utils/ci/run-buildbot generic-no-debug"
234    artifact_paths:
235      - "**/test-results.xml"
236    agents:
237      queue: "libcxx-builders"
238    retry:
239      automatic:
240        - exit_status: -1  # Agent was lost
241          limit: 2
242
243  - label: "No Filesystem"
244    command: "libcxx/utils/ci/run-buildbot generic-no-filesystem"
245    artifact_paths:
246      - "**/test-results.xml"
247    agents:
248      queue: "libcxx-builders"
249    retry:
250      automatic:
251        - exit_status: -1  # Agent was lost
252          limit: 2
253
254  - label: "No random device"
255    command: "libcxx/utils/ci/run-buildbot generic-no-random_device"
256    artifact_paths:
257      - "**/test-results.xml"
258    agents:
259      queue: "libcxx-builders"
260    retry:
261      automatic:
262        - exit_status: -1  # Agent was lost
263          limit: 2
264
265  - label: "No locale"
266    command: "libcxx/utils/ci/run-buildbot generic-no-localization"
267    artifact_paths:
268      - "**/test-results.xml"
269    agents:
270      queue: "libcxx-builders"
271    retry:
272      automatic:
273        - exit_status: -1  # Agent was lost
274          limit: 2
275
276  - label: "Benchmarks"
277    command: "libcxx/utils/ci/run-buildbot benchmarks"
278    artifact_paths:
279      - "**/test-results.xml"
280    agents:
281      queue: "libcxx-builders"
282    retry:
283      automatic:
284        - exit_status: -1  # Agent was lost
285          limit: 2
286
287  - label: "Documentation"
288    command: "libcxx/utils/ci/run-buildbot documentation"
289    artifact_paths:
290      - "**/test-results.xml"
291    agents:
292      queue: "libcxx-builders"
293    retry:
294      automatic:
295        - exit_status: -1  # Agent was lost
296          limit: 2
297
298  - label: "Legacy Lit configuration"
299    command: "libcxx/utils/ci/run-buildbot legacy-test-config"
300    artifact_paths:
301      - "**/test-results.xml"
302    agents:
303      queue: "libcxx-builders"
304    retry:
305      automatic:
306        - exit_status: -1  # Agent was lost
307          limit: 2
308
309  - label: "Legacy standalone build"
310    command: "libcxx/utils/ci/run-buildbot legacy-standalone"
311    artifact_paths:
312      - "**/test-results.xml"
313    agents:
314      queue: "libcxx-builders"
315    retry:
316      automatic:
317        - exit_status: -1  # Agent was lost
318          limit: 2
319
320  - label: "Unified standalone build"
321    command: "libcxx/utils/ci/run-buildbot unified-standalone"
322    artifact_paths:
323      - "**/test-results.xml"
324    agents:
325      queue: "libcxx-builders"
326    retry:
327      automatic:
328        - exit_status: -1  # Agent was lost
329          limit: 2
330
331  - label: "Runtimes build"
332    command: "libcxx/utils/ci/run-buildbot runtimes-build"
333    artifact_paths:
334      - "**/test-results.xml"
335    agents:
336      queue: "libcxx-builders"
337    retry:
338      automatic:
339        - exit_status: -1  # Agent was lost
340          limit: 2
341
342  - label: "Windows (DLL)"
343    command: "bash libcxx/utils/ci/run-buildbot windows-dll"
344    artifact_paths:
345      - "**/test-results.xml"
346    agents:
347      queue: "windows"
348    retry:
349      automatic:
350        - exit_status: -1  # Agent was lost
351          limit: 2
352
353  - label: "Windows (Static)"
354    command: "bash libcxx/utils/ci/run-buildbot windows-static"
355    artifact_paths:
356      - "**/test-results.xml"
357    agents:
358      queue: "windows"
359    retry:
360      automatic:
361        - exit_status: -1  # Agent was lost
362          limit: 2
363
364  - label: "MacOS C++20"
365    command: "libcxx/utils/ci/run-buildbot generic-cxx20"
366    artifact_paths:
367      - "**/test-results.xml"
368      - "**/*.abilist"
369    agents:
370      queue: "libcxx-builders-macos"
371    retry:
372      automatic:
373        - exit_status: -1  # Agent was lost
374          limit: 2
375
376  # Build with the configuration we use to generate libc++.dylib on Apple platforms
377  - label: "Apple system"
378    command: "libcxx/utils/ci/run-buildbot x86_64-apple-system"
379    artifact_paths:
380      - "**/test-results.xml"
381    agents:
382      queue: "libcxx-builders-macos"
383    retry:
384      automatic:
385        - exit_status: -1  # Agent was lost
386          limit: 2
387
388  - label: "Apple system -fno-exceptions"
389    command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-noexceptions"
390    artifact_paths:
391      - "**/test-results.xml"
392    agents:
393      queue: "libcxx-builders-macos"
394    retry:
395      automatic:
396        - exit_status: -1  # Agent was lost
397          limit: 2
398
399  # Test back-deployment to older Apple platforms
400  - label: "Apple back-deployment macosx10.9"
401    command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-backdeployment-10.9"
402    artifact_paths:
403      - "**/test-results.xml"
404    agents:
405      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
406    retry:
407      automatic:
408        - exit_status: -1  # Agent was lost
409          limit: 2
410
411  - label: "Apple back-deployment macosx10.15"
412    command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-backdeployment-10.15"
413    artifact_paths:
414      - "**/test-results.xml"
415    agents:
416      queue: "libcxx-builders-macos10.15"
417    retry:
418      automatic:
419        - exit_status: -1  # Agent was lost
420          limit: 2
421
422  - label: "AArch64"
423    command: "libcxx/utils/ci/run-buildbot aarch64"
424    artifact_paths:
425      - "**/test-results.xml"
426    agents:
427      queue: "libcxx-builders-linaro-arm"
428      arch: "aarch64"
429    retry:
430      automatic:
431        - exit_status: -1  # Agent was lost
432          limit: 2
433
434  - label: "AArch64 -fno-exceptions"
435    command: "libcxx/utils/ci/run-buildbot aarch64-noexceptions"
436    artifact_paths:
437      - "**/test-results.xml"
438    agents:
439      queue: "libcxx-builders-linaro-arm"
440      arch: "aarch64"
441    retry:
442      automatic:
443        - exit_status: -1  # Agent was lost
444          limit: 2
445
446  - label: "Armv8"
447    command: "libcxx/utils/ci/run-buildbot armv8"
448    artifact_paths:
449      - "**/test-results.xml"
450    agents:
451      queue: "libcxx-builders-linaro-arm"
452      arch: "armv8l"
453    retry:
454      automatic:
455        - exit_status: -1  # Agent was lost
456          limit: 2
457
458  - label: "Armv8 -fno-exceptions"
459    command: "libcxx/utils/ci/run-buildbot armv8-noexceptions"
460    artifact_paths:
461      - "**/test-results.xml"
462    agents:
463      queue: "libcxx-builders-linaro-arm"
464      arch: "armv8l"
465    retry:
466      automatic:
467        - exit_status: -1  # Agent was lost
468          limit: 2
469
470  - label: "Armv7"
471    command: "libcxx/utils/ci/run-buildbot armv7"
472    artifact_paths:
473      - "**/test-results.xml"
474    agents:
475      queue: "libcxx-builders-linaro-arm"
476      arch: "armv8l" # Compiling for v7, running on v8 hardware
477    retry:
478      automatic:
479        - exit_status: -1  # Agent was lost
480          limit: 2
481
482  - label: "Armv7 -fno-exceptions"
483    command: "libcxx/utils/ci/run-buildbot armv7-noexceptions"
484    artifact_paths:
485      - "**/test-results.xml"
486    agents:
487      queue: "libcxx-builders-linaro-arm"
488      arch: "armv8l" # Compiling for v7, running on v8 hardware
489    retry:
490      automatic:
491        - exit_status: -1  # Agent was lost
492          limit: 2
493