xref: /openbsd-src/gnu/llvm/libcxx/utils/ci/buildkite-pipeline.yml (revision 4bdff4bed0e3d54e55670334c7d0077db4170f86)
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
20# The Linux CI runners use the nightly ToT build provided by the Docker image.
21# (Note the image isn't updated daily.) The LLVM_HEAD_VERSION contains that
22# version number. The Linux CI runners for GCC use the latest stable version.
23# Theses numbers are available in all runners, making it easier to update the
24# version number.
25env:
26    LLVM_STABLE_VERSION: "15"
27    LLVM_HEAD_VERSION: "16"
28    GCC_STABLE_VERSION: "12"
29steps:
30  #
31  # Light pre-commit tests for things like formatting or when people forget
32  # to update generated files.
33  #
34  - label: "Format"
35    command: "libcxx/utils/ci/run-buildbot check-format"
36    artifact_paths:
37      - "**/clang-format.patch"
38    env:
39        GIT_CLANG_FORMAT: "/usr/bin/git-clang-format-${LLVM_STABLE_VERSION} --binary clang-format-${LLVM_STABLE_VERSION}"
40        CC: "clang-${LLVM_HEAD_VERSION}"
41        CXX: "clang++-${LLVM_HEAD_VERSION}"
42    agents:
43      queue: "libcxx-builders"
44      os: "linux"
45    retry:
46      automatic:
47        - exit_status: -1  # Agent was lost
48          limit: 2
49    soft_fail:
50        - exit_status: 1
51    timeout_in_minutes: 120
52
53  - label: "Generated output"
54    command: "libcxx/utils/ci/run-buildbot check-generated-output"
55    env:
56      CC: "clang-${LLVM_HEAD_VERSION}"
57      CXX: "clang++-${LLVM_HEAD_VERSION}"
58    artifact_paths:
59      - "**/generated_output.patch"
60      - "**/generated_output.status"
61    agents:
62      queue: "libcxx-builders"
63      os: "linux"
64    retry:
65      automatic:
66        - exit_status: -1  # Agent was lost
67          limit: 2
68    timeout_in_minutes: 120
69
70  - label: "Documentation"
71    command: "libcxx/utils/ci/run-buildbot documentation"
72    env:
73      CC: "clang-${LLVM_HEAD_VERSION}"
74      CXX: "clang++-${LLVM_HEAD_VERSION}"
75    artifact_paths:
76      - "**/test-results.xml"
77    agents:
78      queue: "libcxx-builders"
79      os: "linux"
80    retry:
81      automatic:
82        - exit_status: -1  # Agent was lost
83          limit: 2
84    timeout_in_minutes: 120
85
86  #
87  # General testing with the default configuration, under all the supported
88  # Standard modes, with Clang and GCC. This catches most issues upfront.
89  # The goal of this step is to catch most issues while being very fast.
90  #
91  - wait
92
93  - label: "GCC ${GCC_STABLE_VERSION} / C++latest"
94    command: "libcxx/utils/ci/run-buildbot generic-gcc"
95    artifact_paths:
96      - "**/test-results.xml"
97      - "**/*.abilist"
98    env:
99        CC: "gcc-${GCC_STABLE_VERSION}"
100        CXX: "g++-${GCC_STABLE_VERSION}"
101    agents:
102      queue: "libcxx-builders"
103      os: "linux"
104    retry:
105      automatic:
106        - exit_status: -1  # Agent was lost
107          limit: 2
108    timeout_in_minutes: 120
109
110  - label: "C++2b"
111    command: "libcxx/utils/ci/run-buildbot generic-cxx2b"
112    artifact_paths:
113      - "**/test-results.xml"
114      - "**/*.abilist"
115    env:
116        CC: "clang-${LLVM_HEAD_VERSION}"
117        CXX: "clang++-${LLVM_HEAD_VERSION}"
118        ENABLE_CLANG_TIDY: "On"
119    agents:
120      queue: "libcxx-builders"
121      os: "linux"
122    retry:
123      automatic:
124        - exit_status: -1  # Agent was lost
125          limit: 2
126    timeout_in_minutes: 120
127
128  - label: "Modular build"
129    command: "libcxx/utils/ci/run-buildbot generic-modules"
130    artifact_paths:
131      - "**/test-results.xml"
132      - "**/*.abilist"
133    env:
134        CC: "clang-${LLVM_HEAD_VERSION}"
135        CXX: "clang++-${LLVM_HEAD_VERSION}"
136    agents:
137      queue: "libcxx-builders"
138      os: "linux"
139    retry:
140      automatic:
141        - exit_status: -1  # Agent was lost
142          limit: 2
143    timeout_in_minutes: 120
144
145  - label: "C++11"
146    command: "libcxx/utils/ci/run-buildbot generic-cxx11"
147    artifact_paths:
148      - "**/test-results.xml"
149      - "**/*.abilist"
150    env:
151        CC: "clang-${LLVM_HEAD_VERSION}"
152        CXX: "clang++-${LLVM_HEAD_VERSION}"
153        ENABLE_CLANG_TIDY: "On"
154    agents:
155      queue: "libcxx-builders"
156      os: "linux"
157    retry:
158      automatic:
159        - exit_status: -1  # Agent was lost
160          limit: 2
161    timeout_in_minutes: 120
162
163  - label: "C++03"
164    command: "libcxx/utils/ci/run-buildbot generic-cxx03"
165    artifact_paths:
166      - "**/test-results.xml"
167      - "**/*.abilist"
168    env:
169        CC: "clang-${LLVM_HEAD_VERSION}"
170        CXX: "clang++-${LLVM_HEAD_VERSION}"
171        ENABLE_CLANG_TIDY: "On"
172    agents:
173      queue: "libcxx-builders"
174      os: "linux"
175    retry:
176      automatic:
177        - exit_status: -1  # Agent was lost
178          limit: 2
179    timeout_in_minutes: 120
180
181  #
182  # All other supported configurations of libc++.
183  #
184  - wait
185
186  - label: "C++20"
187    command: "libcxx/utils/ci/run-buildbot generic-cxx20"
188    artifact_paths:
189      - "**/test-results.xml"
190      - "**/*.abilist"
191    env:
192        CC: "clang-${LLVM_HEAD_VERSION}"
193        CXX: "clang++-${LLVM_HEAD_VERSION}"
194        ENABLE_CLANG_TIDY: "On"
195    agents:
196      queue: "libcxx-builders"
197      os: "linux"
198    retry:
199      automatic:
200        - exit_status: -1  # Agent was lost
201          limit: 2
202    timeout_in_minutes: 120
203
204  - label: "C++17"
205    command: "libcxx/utils/ci/run-buildbot generic-cxx17"
206    artifact_paths:
207      - "**/test-results.xml"
208      - "**/*.abilist"
209    env:
210        CC: "clang-${LLVM_HEAD_VERSION}"
211        CXX: "clang++-${LLVM_HEAD_VERSION}"
212        ENABLE_CLANG_TIDY: "On"
213    agents:
214      queue: "libcxx-builders"
215      os: "linux"
216    retry:
217      automatic:
218        - exit_status: -1  # Agent was lost
219          limit: 2
220    timeout_in_minutes: 120
221
222  - label: "C++14"
223    command: "libcxx/utils/ci/run-buildbot generic-cxx14"
224    artifact_paths:
225      - "**/test-results.xml"
226      - "**/*.abilist"
227    env:
228        CC: "clang-${LLVM_HEAD_VERSION}"
229        CXX: "clang++-${LLVM_HEAD_VERSION}"
230        ENABLE_CLANG_TIDY: "On"
231    agents:
232      queue: "libcxx-builders"
233      os: "linux"
234    retry:
235      automatic:
236        - exit_status: -1  # Agent was lost
237          limit: 2
238    timeout_in_minutes: 120
239
240  # Tests with the supported compilers.
241  - label: "GCC ${GCC_STABLE_VERSION} / C++11"
242    command: "libcxx/utils/ci/run-buildbot generic-gcc-cxx11"
243    artifact_paths:
244      - "**/test-results.xml"
245      - "**/*.abilist"
246    env:
247        CC: "gcc-${GCC_STABLE_VERSION}"
248        CXX: "g++-${GCC_STABLE_VERSION}"
249    agents:
250      queue: "libcxx-builders"
251      os: "linux"
252    retry:
253      automatic:
254        - exit_status: -1  # Agent was lost
255          limit: 2
256    timeout_in_minutes: 120
257
258  - label: "Clang 14"
259    command: "libcxx/utils/ci/run-buildbot generic-cxx2b"
260    artifact_paths:
261      - "**/test-results.xml"
262      - "**/*.abilist"
263    env:
264        CC: "clang-14"
265        CXX: "clang++-14"
266    agents:
267      queue: "libcxx-builders"
268      os: "linux"
269    retry:
270      automatic:
271        - exit_status: -1  # Agent was lost
272          limit: 2
273    timeout_in_minutes: 120
274
275  - label: "Clang 15"
276    command: "libcxx/utils/ci/run-buildbot generic-cxx2b"
277    artifact_paths:
278      - "**/test-results.xml"
279      - "**/*.abilist"
280    env:
281        CC: "clang-15"
282        CXX: "clang++-15"
283    agents:
284      queue: "libcxx-builders"
285      os: "linux"
286    retry:
287      automatic:
288        - exit_status: -1  # Agent was lost
289          limit: 2
290    timeout_in_minutes: 120
291
292  # Tests with the sanitizers.
293  - group: "Sanitizers"
294    steps:
295    - label: "ASAN"
296      command: "libcxx/utils/ci/run-buildbot generic-asan"
297      artifact_paths:
298        - "**/test-results.xml"
299        - "**/*.abilist"
300      env:
301          CC: "clang-${LLVM_HEAD_VERSION}"
302          CXX: "clang++-${LLVM_HEAD_VERSION}"
303      agents:
304        queue: "libcxx-builders"
305        os: "linux"
306      retry:
307        automatic:
308          - exit_status: -1  # Agent was lost
309            limit: 2
310      timeout_in_minutes: 120
311
312    - label: "TSAN"
313      command: "libcxx/utils/ci/run-buildbot generic-tsan"
314      artifact_paths:
315        - "**/test-results.xml"
316        - "**/*.abilist"
317      env:
318          CC: "clang-${LLVM_HEAD_VERSION}"
319          CXX: "clang++-${LLVM_HEAD_VERSION}"
320      agents:
321        queue: "libcxx-builders"
322        os: "linux"
323      retry:
324        automatic:
325          - exit_status: -1  # Agent was lost
326            limit: 2
327      timeout_in_minutes: 120
328
329    - label: "UBSAN"
330      command: "libcxx/utils/ci/run-buildbot generic-ubsan"
331      artifact_paths:
332        - "**/test-results.xml"
333        - "**/*.abilist"
334      env:
335          CC: "clang-${LLVM_HEAD_VERSION}"
336          CXX: "clang++-${LLVM_HEAD_VERSION}"
337      agents:
338        queue: "libcxx-builders"
339        os: "linux"
340      retry:
341        automatic:
342          - exit_status: -1  # Agent was lost
343            limit: 2
344      timeout_in_minutes: 120
345
346    - label: "MSAN"
347      command: "libcxx/utils/ci/run-buildbot generic-msan"
348      artifact_paths:
349        - "**/test-results.xml"
350        - "**/*.abilist"
351      env:
352          CC: "clang-${LLVM_HEAD_VERSION}"
353          CXX: "clang++-${LLVM_HEAD_VERSION}"
354      agents:
355        queue: "libcxx-builders"
356        os: "linux"
357      retry:
358        automatic:
359          - exit_status: -1  # Agent was lost
360            limit: 2
361      timeout_in_minutes: 120
362
363  # Tests with the various supported ways to build libc++.
364  - label: "Bootstrapping build"
365    command: "libcxx/utils/ci/run-buildbot bootstrapping-build"
366    artifact_paths:
367      - "**/test-results.xml"
368      - "**/*.abilist"
369      - "**/crash_diagnostics/*"
370    env:
371        CC: "clang-${LLVM_HEAD_VERSION}"
372        CXX: "clang++-${LLVM_HEAD_VERSION}"
373        LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-${LLVM_HEAD_VERSION}"
374        CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics"
375    agents:
376      queue: "libcxx-builders"
377      os: "linux"
378    retry:
379      automatic:
380        - exit_status: -1  # Agent was lost
381          limit: 2
382    timeout_in_minutes: 120
383
384  # Tests with various build configurations.
385  - label: "Static libraries"
386    command: "libcxx/utils/ci/run-buildbot generic-static"
387    artifact_paths:
388      - "**/test-results.xml"
389      - "**/*.abilist"
390    env:
391        CC: "clang-${LLVM_HEAD_VERSION}"
392        CXX: "clang++-${LLVM_HEAD_VERSION}"
393    agents:
394      queue: "libcxx-builders"
395      os: "linux"
396    retry:
397      automatic:
398        - exit_status: -1  # Agent was lost
399          limit: 2
400    timeout_in_minutes: 120
401
402  - label: "Shared library with merged ABI and unwinder libraries"
403    command: "libcxx/utils/ci/run-buildbot generic-merged"
404    artifact_paths:
405      - "**/test-results.xml"
406      - "**/*.abilist"
407    env:
408        CC: "clang-${LLVM_HEAD_VERSION}"
409        CXX: "clang++-${LLVM_HEAD_VERSION}"
410    agents:
411      queue: "libcxx-builders"
412      os: "linux"
413    retry:
414      automatic:
415        - exit_status: -1  # Agent was lost
416          limit: 2
417    timeout_in_minutes: 120
418
419  - label: "Assertions enabled"
420    command: "libcxx/utils/ci/run-buildbot generic-assertions"
421    artifact_paths:
422      - "**/test-results.xml"
423      - "**/*.abilist"
424    env:
425        CC: "clang-${LLVM_HEAD_VERSION}"
426        CXX: "clang++-${LLVM_HEAD_VERSION}"
427    agents:
428      queue: "libcxx-builders"
429      os: "linux"
430    retry:
431      automatic:
432        - exit_status: -1  # Agent was lost
433          limit: 2
434    timeout_in_minutes: 120
435
436  - label: "Debug mode"
437    command: "libcxx/utils/ci/run-buildbot generic-debug-mode"
438    artifact_paths:
439      - "**/test-results.xml"
440      - "**/*.abilist"
441    env:
442        CC: "clang-${LLVM_HEAD_VERSION}"
443        CXX: "clang++-${LLVM_HEAD_VERSION}"
444    agents:
445      queue: "libcxx-builders"
446      os: "linux"
447    retry:
448      automatic:
449        - exit_status: -1  # Agent was lost
450          limit: 2
451    timeout_in_minutes: 120
452
453  - label: "With LLVM's libunwind"
454    command: "libcxx/utils/ci/run-buildbot generic-with_llvm_unwinder"
455    artifact_paths:
456      - "**/test-results.xml"
457      - "**/*.abilist"
458    env:
459        CC: "clang-${LLVM_HEAD_VERSION}"
460        CXX: "clang++-${LLVM_HEAD_VERSION}"
461    agents:
462      queue: "libcxx-builders"
463      os: "linux"
464    retry:
465      automatic:
466        - exit_status: -1  # Agent was lost
467          limit: 2
468    timeout_in_minutes: 120
469
470  - group: "Parts disabled"
471    steps:
472    - label: "No threads"
473      command: "libcxx/utils/ci/run-buildbot generic-no-threads"
474      artifact_paths:
475        - "**/test-results.xml"
476        - "**/*.abilist"
477      env:
478          CC: "clang-${LLVM_HEAD_VERSION}"
479          CXX: "clang++-${LLVM_HEAD_VERSION}"
480      agents:
481        queue: "libcxx-builders"
482        os: "linux"
483      retry:
484        automatic:
485          - exit_status: -1  # Agent was lost
486            limit: 2
487      timeout_in_minutes: 120
488
489    - label: "No filesystem"
490      command: "libcxx/utils/ci/run-buildbot generic-no-filesystem"
491      artifact_paths:
492        - "**/test-results.xml"
493        - "**/*.abilist"
494      env:
495          CC: "clang-${LLVM_HEAD_VERSION}"
496          CXX: "clang++-${LLVM_HEAD_VERSION}"
497      agents:
498        queue: "libcxx-builders"
499        os: "linux"
500      retry:
501        automatic:
502          - exit_status: -1  # Agent was lost
503            limit: 2
504      timeout_in_minutes: 120
505
506    - label: "No random device"
507      command: "libcxx/utils/ci/run-buildbot generic-no-random_device"
508      artifact_paths:
509        - "**/test-results.xml"
510        - "**/*.abilist"
511      env:
512          CC: "clang-${LLVM_HEAD_VERSION}"
513          CXX: "clang++-${LLVM_HEAD_VERSION}"
514      agents:
515        queue: "libcxx-builders"
516        os: "linux"
517      retry:
518        automatic:
519          - exit_status: -1  # Agent was lost
520            limit: 2
521      timeout_in_minutes: 120
522
523    - label: "No fstream"
524      command: "libcxx/utils/ci/run-buildbot generic-no-fstream"
525      artifact_paths:
526        - "**/test-results.xml"
527        - "**/*.abilist"
528      env:
529          CC: "clang-${LLVM_HEAD_VERSION}"
530          CXX: "clang++-${LLVM_HEAD_VERSION}"
531      agents:
532        queue: "libcxx-builders"
533        os: "linux"
534      retry:
535        automatic:
536          - exit_status: -1  # Agent was lost
537            limit: 2
538      timeout_in_minutes: 120
539
540    - label: "No locale"
541      command: "libcxx/utils/ci/run-buildbot generic-no-localization"
542      artifact_paths:
543        - "**/test-results.xml"
544        - "**/*.abilist"
545      env:
546          CC: "clang-${LLVM_HEAD_VERSION}"
547          CXX: "clang++-${LLVM_HEAD_VERSION}"
548      agents:
549        queue: "libcxx-builders"
550        os: "linux"
551      retry:
552        automatic:
553          - exit_status: -1  # Agent was lost
554            limit: 2
555      timeout_in_minutes: 120
556
557    - label: "No Unicode"
558      command: "libcxx/utils/ci/run-buildbot generic-no-unicode"
559      artifact_paths:
560        - "**/test-results.xml"
561        - "**/*.abilist"
562      env:
563          CC: "clang-${LLVM_HEAD_VERSION}"
564          CXX: "clang++-${LLVM_HEAD_VERSION}"
565      agents:
566        queue: "libcxx-builders"
567        os: "linux"
568      retry:
569        automatic:
570          - exit_status: -1  # Agent was lost
571            limit: 2
572      timeout_in_minutes: 120
573
574    - label: "No wide characters"
575      command: "libcxx/utils/ci/run-buildbot generic-no-wide-characters"
576      artifact_paths:
577        - "**/test-results.xml"
578        - "**/*.abilist"
579      env:
580          CC: "clang-${LLVM_HEAD_VERSION}"
581          CXX: "clang++-${LLVM_HEAD_VERSION}"
582      agents:
583        queue: "libcxx-builders"
584        os: "linux"
585      retry:
586        automatic:
587          - exit_status: -1  # Agent was lost
588            limit: 2
589      timeout_in_minutes: 120
590
591    - label: "No experimental features"
592      command: "libcxx/utils/ci/run-buildbot generic-no-experimental"
593      artifact_paths:
594        - "**/test-results.xml"
595        - "**/*.abilist"
596      env:
597          CC: "clang-${LLVM_HEAD_VERSION}"
598          CXX: "clang++-${LLVM_HEAD_VERSION}"
599      agents:
600        queue: "libcxx-builders"
601        os: "linux"
602      retry:
603        automatic:
604          - exit_status: -1  # Agent was lost
605            limit: 2
606      timeout_in_minutes: 120
607
608    - label: "No exceptions"
609      command: "libcxx/utils/ci/run-buildbot generic-noexceptions"
610      artifact_paths:
611        - "**/test-results.xml"
612        - "**/*.abilist"
613      env:
614          CC: "clang-${LLVM_HEAD_VERSION}"
615          CXX: "clang++-${LLVM_HEAD_VERSION}"
616      agents:
617        queue: "libcxx-builders"
618        os: "linux"
619      retry:
620        automatic:
621          - exit_status: -1  # Agent was lost
622            limit: 2
623      timeout_in_minutes: 120
624
625  - label: "Unstable ABI"
626    command: "libcxx/utils/ci/run-buildbot generic-abi-unstable"
627    artifact_paths:
628      - "**/test-results.xml"
629      - "**/*.abilist"
630    env:
631        CC: "clang-${LLVM_HEAD_VERSION}"
632        CXX: "clang++-${LLVM_HEAD_VERSION}"
633    agents:
634      queue: "libcxx-builders"
635      os: "linux"
636    retry:
637      automatic:
638        - exit_status: -1  # Agent was lost
639          limit: 2
640    timeout_in_minutes: 120
641
642  # Other non-testing CI jobs
643  - label: "Benchmarks"
644    command: "libcxx/utils/ci/run-buildbot benchmarks"
645    artifact_paths:
646      - "**/test-results.xml"
647      - "**/*.abilist"
648    env:
649        CC: "clang-${LLVM_HEAD_VERSION}"
650        CXX: "clang++-${LLVM_HEAD_VERSION}"
651    agents:
652      queue: "libcxx-builders"
653      os: "linux"
654    retry:
655      automatic:
656        - exit_status: -1  # Agent was lost
657          limit: 2
658    timeout_in_minutes: 120
659
660  # Tests on non-Unix platforms
661  - group: ":windows: Windows"
662    steps:
663    - label: "Clang-cl (DLL)"
664      command: "bash libcxx/utils/ci/run-buildbot clang-cl-dll"
665      artifact_paths:
666        - "**/test-results.xml"
667        - "**/*.abilist"
668      agents:
669        queue: "windows"
670      retry:
671        automatic:
672          - exit_status: -1  # Agent was lost
673            limit: 2
674      timeout_in_minutes: 120
675
676    - label: "Clang-cl (Static)"
677      command: "bash libcxx/utils/ci/run-buildbot clang-cl-static"
678      artifact_paths:
679        - "**/test-results.xml"
680        - "**/*.abilist"
681      agents:
682        queue: "windows"
683      retry:
684        automatic:
685          - exit_status: -1  # Agent was lost
686            limit: 2
687      timeout_in_minutes: 120
688
689    - label: "Clang-cl (no vcruntime exceptions)"
690      command: "bash libcxx/utils/ci/run-buildbot clang-cl-no-vcruntime"
691      artifact_paths:
692        - "**/test-results.xml"
693        - "**/*.abilist"
694      agents:
695        queue: "windows"
696      retry:
697        automatic:
698          - exit_status: -1  # Agent was lost
699            limit: 2
700
701    - label: "MinGW (DLL, x86_64)"
702      command: "bash libcxx/utils/ci/run-buildbot mingw-dll"
703      artifact_paths:
704        - "**/test-results.xml"
705        - "**/*.abilist"
706      agents:
707        queue: "windows"
708      retry:
709        automatic:
710          - exit_status: -1  # Agent was lost
711            limit: 2
712      timeout_in_minutes: 120
713
714    - label: "MinGW (Static, x86_64)"
715      command: "bash libcxx/utils/ci/run-buildbot mingw-static"
716      artifact_paths:
717        - "**/test-results.xml"
718        - "**/*.abilist"
719      agents:
720        queue: "windows"
721      retry:
722        automatic:
723          - exit_status: -1  # Agent was lost
724            limit: 2
725      timeout_in_minutes: 120
726
727    - label: "MinGW (DLL, i686)"
728      command: "bash libcxx/utils/ci/run-buildbot mingw-dll-i686"
729      artifact_paths:
730        - "**/test-results.xml"
731        - "**/*.abilist"
732      agents:
733        queue: "windows"
734      retry:
735        automatic:
736          - exit_status: -1  # Agent was lost
737            limit: 2
738      timeout_in_minutes: 120
739
740  - group: ":apple: Apple"
741    steps:
742    - label: "MacOS x86_64"
743      command: "libcxx/utils/ci/run-buildbot apple-cxx20"
744      artifact_paths:
745        - "**/test-results.xml"
746        - "**/*.abilist"
747      agents:
748        queue: "libcxx-builders"
749        os: "macos"
750        arch: "x86_64"
751      retry:
752        automatic:
753          - exit_status: -1  # Agent was lost
754            limit: 2
755      timeout_in_minutes: 120
756
757    - label: "MacOS arm64"
758      command: "libcxx/utils/ci/run-buildbot apple-cxx20"
759      artifact_paths:
760        - "**/test-results.xml"
761        - "**/*.abilist"
762      agents:
763        queue: "libcxx-builders"
764        os: "macos"
765        arch: "arm64"
766      retry:
767        automatic:
768          - exit_status: -1  # Agent was lost
769            limit: 2
770      timeout_in_minutes: 120
771
772    # Build with the configuration we use to generate libc++.dylib on Apple platforms
773    - label: "Apple system"
774      command: "libcxx/utils/ci/run-buildbot apple-system"
775      artifact_paths:
776        - "**/test-results.xml"
777        - "**/*.abilist"
778      agents:
779        queue: "libcxx-builders"
780        os: "macos"
781        arch: "arm64" # This can technically run on any architecture, but we have more resources on arm64 so we pin this job to arm64
782      retry:
783        automatic:
784          - exit_status: -1  # Agent was lost
785            limit: 2
786      timeout_in_minutes: 120
787
788    # Test back-deployment to older Apple platforms
789    - label: "Apple back-deployment macosx10.9"
790      command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.9"
791      artifact_paths:
792        - "**/test-results.xml"
793        - "**/*.abilist"
794      agents:
795        queue: "libcxx-builders"
796        os: "macos"
797        arch: "x86_64" # We need to use x86_64 for back-deployment CI on this target since macOS didn't support arm64 back then.
798      retry:
799        automatic:
800          - exit_status: -1  # Agent was lost
801            limit: 2
802      timeout_in_minutes: 120
803
804    - label: "Apple back-deployment macosx10.15"
805      command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.15"
806      artifact_paths:
807        - "**/test-results.xml"
808        - "**/*.abilist"
809      agents:
810        queue: "libcxx-builders"
811        os: "macos"
812        arch: "x86_64" # We need to use x86_64 for back-deployment CI on this target since macOS didn't support arm64 back then.
813      retry:
814        automatic:
815          - exit_status: -1  # Agent was lost
816            limit: 2
817      timeout_in_minutes: 120
818
819    - label: "Apple back-deployment macosx11.0 arm64"
820      command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-11.0"
821      artifact_paths:
822        - "**/test-results.xml"
823        - "**/*.abilist"
824      agents:
825        queue: "libcxx-builders"
826        os: "macos"
827        arch: "arm64"
828      retry:
829        automatic:
830          - exit_status: -1  # Agent was lost
831            limit: 2
832      timeout_in_minutes: 120
833
834    - label: "Apple back-deployment with assertions enabled"
835      command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-assertions-11.0"
836      artifact_paths:
837        - "**/test-results.xml"
838        - "**/*.abilist"
839      agents:
840        queue: "libcxx-builders"
841        os: "macos"
842      retry:
843        automatic:
844          - exit_status: -1  # Agent was lost
845            limit: 2
846      timeout_in_minutes: 120
847
848  - group: "ARM"
849    steps:
850    - label: "AArch64"
851      command: "libcxx/utils/ci/run-buildbot aarch64"
852      artifact_paths:
853        - "**/test-results.xml"
854        - "**/*.abilist"
855      agents:
856        queue: "libcxx-builders-linaro-arm"
857        arch: "aarch64"
858      retry:
859        automatic:
860          - exit_status: -1  # Agent was lost
861            limit: 2
862      timeout_in_minutes: 120
863
864    - label: "AArch64 -fno-exceptions"
865      command: "libcxx/utils/ci/run-buildbot aarch64-noexceptions"
866      artifact_paths:
867        - "**/test-results.xml"
868        - "**/*.abilist"
869      agents:
870        queue: "libcxx-builders-linaro-arm"
871        arch: "aarch64"
872      retry:
873        automatic:
874          - exit_status: -1  # Agent was lost
875            limit: 2
876      timeout_in_minutes: 120
877
878    - label: "Armv8"
879      command: "libcxx/utils/ci/run-buildbot armv8"
880      artifact_paths:
881        - "**/test-results.xml"
882        - "**/*.abilist"
883      agents:
884        queue: "libcxx-builders-linaro-arm"
885        arch: "armv8l"
886      retry:
887        automatic:
888          - exit_status: -1  # Agent was lost
889            limit: 2
890      timeout_in_minutes: 120
891
892    - label: "Armv8 -fno-exceptions"
893      command: "libcxx/utils/ci/run-buildbot armv8-noexceptions"
894      artifact_paths:
895        - "**/test-results.xml"
896        - "**/*.abilist"
897      agents:
898        queue: "libcxx-builders-linaro-arm"
899        arch: "armv8l"
900      retry:
901        automatic:
902          - exit_status: -1  # Agent was lost
903            limit: 2
904      timeout_in_minutes: 120
905
906    - label: "Armv7"
907      command: "libcxx/utils/ci/run-buildbot armv7"
908      artifact_paths:
909        - "**/test-results.xml"
910        - "**/*.abilist"
911      agents:
912        queue: "libcxx-builders-linaro-arm"
913        arch: "armv8l" # Compiling for v7, running on v8 hardware
914      retry:
915        automatic:
916          - exit_status: -1  # Agent was lost
917            limit: 2
918      timeout_in_minutes: 120
919
920    - label: "Armv7 -fno-exceptions"
921      command: "libcxx/utils/ci/run-buildbot armv7-noexceptions"
922      artifact_paths:
923        - "**/test-results.xml"
924        - "**/*.abilist"
925      agents:
926        queue: "libcxx-builders-linaro-arm"
927        arch: "armv8l" # Compiling for v7, running on v8 hardware
928      retry:
929        automatic:
930          - exit_status: -1  # Agent was lost
931            limit: 2
932      timeout_in_minutes: 120
933
934  - group: "AIX"
935    steps:
936    - label: "AIX (32-bit)"
937      command: "libcxx/utils/ci/run-buildbot aix"
938      artifact_paths:
939        - "**/test-results.xml"
940        - "**/*.abilist"
941      env:
942          CC: "clang"
943          CXX: "clang++"
944          OBJECT_MODE: "32"
945      agents:
946          queue: libcxx-builders
947          os: aix
948      retry:
949        automatic:
950          - exit_status: -1  # Agent was lost
951            limit: 2
952      timeout_in_minutes: 120
953
954    - label: "AIX (64-bit)"
955      command: "libcxx/utils/ci/run-buildbot aix"
956      artifact_paths:
957        - "**/test-results.xml"
958        - "**/*.abilist"
959      env:
960          CC: "clang"
961          CXX: "clang++"
962          OBJECT_MODE: "64"
963      agents:
964          queue: libcxx-builders
965          os: aix
966      retry:
967        automatic:
968          - exit_status: -1  # Agent was lost
969            limit: 2
970      timeout_in_minutes: 120
971