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