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: "luci-scheduler@appspot.gserviceaccount.com"
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: "linux"
81  dimensions: "os:Ubuntu-16.04"
82}
83
84builder_mixins {
85  name: "linux1804"
86  dimensions: "os:Ubuntu-18.04"
87}
88
89builder_mixins {
90  name: "mac"
91
92  # NOTE: The OS version here will determine which version of XCode is being
93  # used. Relevant links; so you and I never have to spend hours finding this
94  # stuff all over again to fix things like https://crbug.com/openscreen/86
95  #
96  # 1. The recipe code that uses the "osx_sdk" recipe module:
97  #
98  #   https://cs.chromium.org/chromium/build/scripts/slave/recipes/openscreen.py?rcl=671f9f1c5f5bef81d0a39973aa8729cc83bb290e&l=74
99  #
100  # 2. The XCode version look-up table in the "osx_sdk" recipe module:
101  #
102  #   https://cs.chromium.org/chromium/tools/depot_tools/recipes/recipe_modules/osx_sdk/api.py?l=32
103  #
104  dimensions: "os:Mac-10.15"
105
106  caches: {
107    # Cache for mac_toolchain tool and XCode.app used in recipes.
108    name: "osx_sdk"
109    path: "osx_sdk"
110  }
111}
112
113builder_mixins {
114  name: "x64"
115  dimensions: "cpu:x86-64"
116  recipe {
117    properties: "target_cpu:x64"
118  }
119}
120
121builder_mixins {
122  name: "arm64"
123  dimensions: "cpu:x86-64"
124  recipe {
125    properties: "target_cpu:arm64"
126  }
127}
128
129# The default sysroot is sid, which is too new for the swarming bots,
130# which are locked to the standard library that shipped with Ubuntu 16.04.
131builder_mixins {
132  name: "sysroot_platform_stretch"
133  recipe: {
134    properties: "sysroot_platform:stretch"
135  }
136}
137
138builder_mixins {
139  name: "chromium"
140  recipe: {
141    name: "chromium"
142    properties: "builder_group:client.openscreen.chromium"
143  }
144}
145
146builder_mixins {
147  name: "goma_rbe"
148  recipe: {
149    properties_j: <<EOF
150      $build/goma: {
151        "server_host": "goma.chromium.org",
152        "rpc_extra_params": "?prod"
153      }
154    EOF
155  }
156}
157
158builder_mixins {
159  name: "goma_rbe_ats"
160  recipe: {
161    properties_j: <<EOF
162      $build/goma: {
163        "server_host": "goma.chromium.org",
164        "rpc_extra_params": "?prod",
165        "enable_ats": true
166      }
167    EOF
168  }
169}
170
171builder_mixins {
172  name: "no_goma"
173  recipe {
174    properties_j: "use_goma:false"
175  }
176}
177
178buckets {
179  name: "luci.openscreen.ci"
180  acl_sets: "ci"
181  swarming {
182    hostname: "chromium-swarm.appspot.com"
183    builder_defaults {
184      dimensions: "pool:luci.flex.ci"
185      recipe {
186        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
187        cipd_version: "refs/heads/master"
188        name: "openscreen"
189        # Note: we use bash-style heredocs to avoid having to escape everything.
190        properties_j: <<EOF
191          $depot_tools/bot_update: {
192            "apply_patch_on_gclient":true
193          }
194        EOF
195        properties_j: <<EOF
196          $recipe_engine/isolated: {
197            "server": "https://isolateserver.appspot.com"
198          }
199        EOF
200        properties_j: <<EOF
201          $recipe_engine/cas: {
202            "instance": "chromium-swarm"
203          }
204        EOF
205        properties_j: <<EOF
206          $recipe_engine/swarming: {
207            "server": "https://chromium-swarm.appspot.com"
208          }
209        EOF
210      }
211      service_account: "openscreen-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
212    }
213
214    builders {
215      name: "linux64_debug"
216      mixins: "linux"
217      mixins: "debug"
218      mixins: "x64"
219      mixins: "asan"
220      mixins: "ci"
221      mixins: "goma_rbe_ats"
222    }
223
224    builders {
225      name: "linux64_gcc_debug"
226      mixins: "linux1804"
227      mixins: "debug"
228      mixins: "x64"
229      mixins: "gcc"
230      mixins: "ci"
231      mixins: "no_goma"
232    }
233
234    builders {
235      name: "linux64_tsan"
236      mixins: "linux"
237      mixins: "x64"
238      mixins: "tsan"
239      mixins: "ci"
240      mixins: "goma_rbe_ats"
241    }
242
243    builders {
244      name: "linux_arm64_debug"
245      mixins: "linux"
246      mixins: "arm64"
247      mixins: "debug"
248      mixins: "sysroot_platform_stretch"
249      mixins: "ci"
250      mixins: "goma_rbe_ats"
251    }
252
253    builders {
254      name: "mac_debug"
255      mixins: "mac"
256      mixins: "debug"
257      mixins: "x64"
258      mixins: "ci"
259      mixins: "goma_rbe"
260    }
261
262    builders {
263      name: "chromium_linux64_debug"
264      mixins: "linux"
265      mixins: "debug"
266      mixins: "x64"
267      mixins: "chromium"
268      mixins: "ci"
269      mixins: "goma_rbe_ats"
270    }
271
272    builders {
273      name: "chromium_mac_debug"
274      mixins: "mac"
275      mixins: "debug"
276      mixins: "x64"
277      mixins: "chromium"
278      mixins: "ci"
279      mixins: "goma_rbe"
280    }
281
282    # TODO(issuetracker.google.com/155812080): Integrate this with existing
283    # linux64_debug bot.
284    builders {
285      name: "linux64_coverage_debug"
286      mixins: "linux"
287      mixins: "debug"
288      mixins: "x64"
289      mixins: "code_coverage"
290      mixins: "ci"
291      mixins: "goma_rbe_ats"
292    }
293  }
294}
295
296buckets: {
297  name: "luci.openscreen.try"
298  acl_sets: "try"
299  swarming {
300    hostname: "chromium-swarm.appspot.com"
301    builder_defaults {
302      dimensions: "pool:luci.flex.try"
303      recipe {
304        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
305        cipd_version: "refs/heads/master"
306        name: "openscreen"
307        # Note: we use bash-style heredocs to avoid having to escape everything.
308        properties_j: <<EOF
309          $depot_tools/bot_update: {
310            "apply_patch_on_gclient":true
311          }
312        EOF
313        properties_j: <<EOF
314          $recipe_engine/isolated: {
315            "server": "https://isolateserver.appspot.com"
316          }
317        EOF
318        properties_j: <<EOF
319          $recipe_engine/cas: {
320            "instance": "chromium-swarm"
321          }
322        EOF
323        properties_j: <<EOF
324          $recipe_engine/swarming: {
325            "server": "https://chromium-swarm.appspot.com"
326          }
327        EOF
328      }
329      service_account: "openscreen-try-builder@chops-service-accounts.iam.gserviceaccount.com"
330    }
331
332    builders {
333      name: "linux64_debug"
334      mixins: "linux"
335      mixins: "debug"
336      mixins: "x64"
337      mixins: "asan"
338      mixins: "goma_rbe_ats"
339    }
340
341    builders {
342      name: "linux64_gcc_debug"
343      mixins: "linux1804"
344      mixins: "debug"
345      mixins: "x64"
346      mixins: "gcc"
347      mixins: "no_goma"
348    }
349
350    builders {
351      name: "linux64_tsan"
352      mixins: "linux"
353      mixins: "x64"
354      mixins: "tsan"
355      mixins: "goma_rbe_ats"
356    }
357
358    builders {
359      name: "linux_arm64_debug"
360      mixins: "linux"
361      mixins: "arm64"
362      mixins: "debug"
363      mixins: "sysroot_platform_stretch"
364      mixins: "goma_rbe_ats"
365    }
366
367    builders {
368      name: "mac_debug"
369      mixins: "mac"
370      mixins: "debug"
371      mixins: "x64"
372      mixins: "goma_rbe"
373    }
374
375    builders {
376      name: "openscreen_presubmit"
377      recipe {
378        name: "run_presubmit"
379        properties: "repo_name:openscreen"
380        properties: "runhooks:true"
381      }
382      mixins: "linux"
383      mixins: "x64"
384    }
385
386    builders {
387      name: "chromium_linux64_debug"
388      mixins: "linux"
389      mixins: "debug"
390      mixins: "x64"
391      mixins: "chromium"
392      mixins: "goma_rbe_ats"
393    }
394
395    builders {
396      name: "chromium_mac_debug"
397      mixins: "mac"
398      mixins: "debug"
399      mixins: "x64"
400      mixins: "chromium"
401      mixins: "goma_rbe"
402    }
403
404    # TODO(issuetracker.google.com/155812080): Integrate this with existing
405    # linux64_debug bot.
406    builders {
407      name: "linux64_coverage_debug"
408      mixins: "linux"
409      mixins: "debug"
410      mixins: "x64"
411      mixins: "code_coverage"
412      mixins: "goma_rbe_ats"
413    }
414  }
415}
416
417