xref: /aosp_15_r20/external/openscreen/infra/config/global/cr-buildbucket.cfg (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1# Defines buckets on cr-buildbucket.appspot.com, used to schedule builds
2# on buildbot. In particular, CQ uses some of these buckets to schedule tryjobs.
3#
4# See http://luci-config.appspot.com/schemas/projects:cr-buildbucket.cfg for
5# schema of this file and documentation.
6#
7# Please keep this list sorted by bucket name.
8acl_sets {
9  name: "ci"
10  acls {
11    role: READER
12    group: "all"
13  }
14  acls {
15    role: SCHEDULER
16    identity: "[email protected]"
17  }
18}
19
20acl_sets {
21  name: "try"
22  acls {
23    role: READER
24    group: "all"
25  }
26  acls {
27    role: SCHEDULER
28    group: "project-openscreen-tryjob-access"
29  }
30  acls {
31    role: SCHEDULER
32    group: "service-account-cq"
33  }
34}
35
36builder_mixins {
37  name: "ci"
38  recipe {
39    properties_j: "is_ci:true"
40  }
41}
42
43builder_mixins {
44  name: "debug"
45  recipe {
46    properties_j: "is_debug:true"
47  }
48}
49
50builder_mixins {
51  name: "gcc"
52  recipe {
53    properties_j: "is_gcc:true"
54  }
55}
56
57
58builder_mixins {
59  name: "asan"
60  recipe {
61    properties_j: "is_asan:true"
62  }
63}
64
65builder_mixins {
66  name: "tsan"
67  recipe {
68    properties_j: "is_tsan:true"
69  }
70}
71
72builder_mixins {
73  name: "code_coverage"
74  recipe {
75    properties_j: "use_coverage:true"
76  }
77}
78
79builder_mixins {
80  name: "cast_standalone"
81  recipe {
82    properties_j: "have_ffmpeg:true"
83    properties_j: "have_libsdl2:true"
84    properties_j: "have_libopus:true"
85    properties_j: "have_libvpx:true"
86    properties_j: "cast_allow_developer_certificate:true"
87  }
88}
89
90builder_mixins {
91  name: "linux"
92  dimensions: "os:Ubuntu-18.04"
93}
94
95builder_mixins {
96  name: "mac"
97
98  # NOTE: The OS version here will determine which version of XCode is being
99  # used. Relevant links; so you and I never have to spend hours finding this
100  # stuff all over again to fix things like https://crbug.com/openscreen/86
101  #
102  # 1. The recipe code that uses the "osx_sdk" recipe module:
103  #
104  #   https://cs.chromium.org/chromium/build/scripts/slave/recipes/openscreen.py?rcl=671f9f1c5f5bef81d0a39973aa8729cc83bb290e&l=74
105  #
106  # 2. The XCode version look-up table in the "osx_sdk" recipe module:
107  #
108  #   https://cs.chromium.org/chromium/tools/depot_tools/recipes/recipe_modules/osx_sdk/api.py?l=32
109  #
110  dimensions: "os:Mac-10.15"
111
112  caches: {
113    # Cache for mac_toolchain tool and XCode.app used in recipes.
114    name: "osx_sdk"
115    path: "osx_sdk"
116  }
117}
118
119builder_mixins {
120  name: "x64"
121  dimensions: "cpu:x86-64"
122  recipe {
123    properties: "target_cpu:x64"
124  }
125}
126
127builder_mixins {
128  name: "arm64"
129  dimensions: "cpu:x86-64"
130  recipe {
131    properties: "target_cpu:arm64"
132  }
133}
134
135# The default sysroot is sid, which is too new for the swarming bots,
136# which are locked to the standard library that shipped with Ubuntu 16.04.
137builder_mixins {
138  name: "sysroot_platform_stretch"
139  recipe: {
140    properties: "sysroot_platform:stretch"
141  }
142}
143
144builder_mixins {
145  name: "chromium"
146  recipe: {
147    name: "chromium"
148    properties: "builder_group:client.openscreen.chromium"
149  }
150}
151
152builder_mixins {
153  name: "goma_rbe"
154  recipe: {
155    properties_j: <<EOF
156      $build/goma: {
157        "server_host": "goma.chromium.org",
158        "rpc_extra_params": "?prod"
159      }
160    EOF
161  }
162}
163
164builder_mixins {
165  name: "goma_rbe_ats"
166  recipe: {
167    properties_j: <<EOF
168      $build/goma: {
169        "server_host": "goma.chromium.org",
170        "rpc_extra_params": "?prod",
171        "enable_ats": true
172      }
173    EOF
174  }
175}
176
177builder_mixins {
178  name: "no_goma"
179  recipe {
180    properties_j: "use_goma:false"
181  }
182}
183
184buckets {
185  name: "luci.openscreen.ci"
186  acl_sets: "ci"
187  swarming {
188    hostname: "chromium-swarm.appspot.com"
189    builder_defaults {
190      dimensions: "pool:luci.flex.ci"
191      recipe {
192        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
193        cipd_version: "refs/heads/master"
194        name: "openscreen"
195        # Note: we use bash-style heredocs to avoid having to escape everything.
196        properties_j: <<EOF
197          $depot_tools/bot_update: {
198            "apply_patch_on_gclient":true
199          }
200        EOF
201        properties_j: <<EOF
202          $recipe_engine/swarming: {
203            "server": "https://chromium-swarm.appspot.com"
204          }
205        EOF
206      }
207      service_account: "openscreen-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
208    }
209
210    builders {
211      name: "linux64_debug"
212      mixins: "linux"
213      mixins: "debug"
214      mixins: "x64"
215      mixins: "asan"
216      mixins: "ci"
217      mixins: "goma_rbe_ats"
218    }
219
220    builders {
221      name: "linux64_gcc_debug"
222      mixins: "linux"
223      mixins: "debug"
224      mixins: "x64"
225      mixins: "gcc"
226      mixins: "ci"
227      mixins: "no_goma"
228    }
229
230    builders {
231      name: "linux64_tsan"
232      mixins: "linux"
233      mixins: "x64"
234      mixins: "tsan"
235      mixins: "ci"
236      mixins: "goma_rbe_ats"
237    }
238
239    builders {
240      name: "linux_arm64_debug"
241      mixins: "linux"
242      mixins: "arm64"
243      mixins: "debug"
244      mixins: "sysroot_platform_stretch"
245      mixins: "ci"
246      mixins: "goma_rbe_ats"
247    }
248
249    builders {
250      name: "mac_debug"
251      mixins: "mac"
252      mixins: "debug"
253      mixins: "x64"
254      mixins: "ci"
255      mixins: "goma_rbe"
256    }
257
258    builders {
259      name: "chromium_linux64_debug"
260      mixins: "linux"
261      mixins: "debug"
262      mixins: "x64"
263      mixins: "chromium"
264      mixins: "ci"
265      mixins: "goma_rbe_ats"
266    }
267
268    builders {
269      name: "chromium_mac_debug"
270      mixins: "mac"
271      mixins: "debug"
272      mixins: "x64"
273      mixins: "chromium"
274      mixins: "ci"
275      mixins: "goma_rbe"
276    }
277
278    # TODO(issuetracker.google.com/155812080): Integrate this with existing
279    # linux64_debug bot.
280    builders {
281      name: "linux64_coverage_debug"
282      mixins: "linux"
283      mixins: "debug"
284      mixins: "x64"
285      mixins: "code_coverage"
286      mixins: "ci"
287      mixins: "goma_rbe_ats"
288    }
289
290    builders {
291      name: "linux64_cast_e2e"
292      mixins: "linux"
293      mixins: "debug"
294      mixins: "x64"
295      mixins: "cast_standalone"
296      mixins: "goma_rbe_ats"
297    }
298  }
299}
300
301buckets: {
302  name: "luci.openscreen.try"
303  acl_sets: "try"
304  swarming {
305    hostname: "chromium-swarm.appspot.com"
306    builder_defaults {
307      dimensions: "pool:luci.flex.try"
308      recipe {
309        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
310        cipd_version: "refs/heads/master"
311        name: "openscreen"
312        # Note: we use bash-style heredocs to avoid having to escape everything.
313        properties_j: <<EOF
314          $depot_tools/bot_update: {
315            "apply_patch_on_gclient":true
316          }
317        EOF
318        properties_j: <<EOF
319          $recipe_engine/swarming: {
320            "server": "https://chromium-swarm.appspot.com"
321          }
322        EOF
323      }
324      service_account: "openscreen-try-builder@chops-service-accounts.iam.gserviceaccount.com"
325    }
326
327    builders {
328      name: "linux64_debug"
329      mixins: "linux"
330      mixins: "debug"
331      mixins: "x64"
332      mixins: "asan"
333      mixins: "goma_rbe_ats"
334    }
335
336    builders {
337      name: "linux64_gcc_debug"
338      mixins: "linux"
339      mixins: "debug"
340      mixins: "x64"
341      mixins: "gcc"
342      mixins: "no_goma"
343    }
344
345    builders {
346      name: "linux64_tsan"
347      mixins: "linux"
348      mixins: "x64"
349      mixins: "tsan"
350      mixins: "goma_rbe_ats"
351    }
352
353    builders {
354      name: "linux_arm64_debug"
355      mixins: "linux"
356      mixins: "arm64"
357      mixins: "debug"
358      mixins: "sysroot_platform_stretch"
359      mixins: "goma_rbe_ats"
360    }
361
362    builders {
363      name: "mac_debug"
364      mixins: "mac"
365      mixins: "debug"
366      mixins: "x64"
367      mixins: "goma_rbe"
368    }
369
370    builders {
371      name: "openscreen_presubmit"
372      recipe {
373        name: "run_presubmit"
374        properties: "repo_name:openscreen"
375        properties: "runhooks:true"
376      }
377      mixins: "linux"
378      mixins: "x64"
379    }
380
381    builders {
382      name: "chromium_linux64_debug"
383      mixins: "linux"
384      mixins: "debug"
385      mixins: "x64"
386      mixins: "chromium"
387      mixins: "goma_rbe_ats"
388    }
389
390    builders {
391      name: "chromium_mac_debug"
392      mixins: "mac"
393      mixins: "debug"
394      mixins: "x64"
395      mixins: "chromium"
396      mixins: "goma_rbe"
397    }
398
399    # TODO(issuetracker.google.com/155812080): Integrate this with existing
400    # linux64_debug bot.
401    builders {
402      name: "linux64_coverage_debug"
403      mixins: "linux"
404      mixins: "debug"
405      mixins: "x64"
406      mixins: "code_coverage"
407      mixins: "goma_rbe_ats"
408    }
409
410    builders {
411      name: "linux64_cast_e2e"
412      mixins: "linux"
413      mixins: "debug"
414      mixins: "x64"
415      mixins: "cast_standalone"
416      mixins: "goma_rbe_ats"
417    }
418  }
419}
420