blob: a37369fffafd38eabfc5753d459924c1203e9690 [file] [log] [blame]
Oleh Prypin1a0593f2019-03-11 09:43:28 +01001#!/usr/bin/env lucicfg
2
3# Copyright (c) 2019 The WebRTC project authors. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7# https://chromium.googlesource.com/infra/luci/luci-go/+/master/lucicfg/doc/
8
9WEBRTC_GIT = "https://webrtc.googlesource.com/src"
10WEBRTC_GERRIT = "https://webrtc-review.googlesource.com/src"
11
12# Top-level configs:
13
14lucicfg.config(
15 config_dir = ".",
16 tracked_files = [
17 "commit-queue.cfg",
18 "cr-buildbucket.cfg",
19 "luci-logdog.cfg",
20 "luci-milo.cfg",
Oleh Prypin71d17422019-03-28 08:43:16 +010021 "luci-notify.cfg",
Oleh Prypin705b6a62019-04-03 23:10:51 +020022 "luci-notify/**/*",
Oleh Prypin1a0593f2019-03-11 09:43:28 +010023 "luci-scheduler.cfg",
24 "project.cfg",
25 ],
26)
27
28luci.project(
29 name = "webrtc",
30 buildbucket = "cr-buildbucket.appspot.com",
31 logdog = "luci-logdog.appspot.com",
32 milo = "luci-milo.appspot.com",
Oleh Prypin71d17422019-03-28 08:43:16 +010033 notify = "luci-notify.appspot.com",
Oleh Prypin1a0593f2019-03-11 09:43:28 +010034 scheduler = "luci-scheduler.appspot.com",
35 swarming = "chromium-swarm.appspot.com",
36 acls = [
37 acl.entry(
38 [acl.BUILDBUCKET_READER, acl.LOGDOG_READER, acl.PROJECT_CONFIGS_READER, acl.SCHEDULER_READER],
39 groups = ["all"],
40 ),
41 acl.entry(acl.LOGDOG_WRITER, groups = ["luci-logdog-chromium-writers"]),
42 acl.entry(acl.SCHEDULER_OWNER, groups = ["project-webrtc-admins"]),
43 ],
44)
45
46luci.logdog(
47 gs_bucket = "chromium-luci-logdog",
48)
49
50luci.milo(
51 logo = "https://storage.googleapis.com/chrome-infra/webrtc-logo-vert-retro-255x305.png",
52)
53
54luci.cq(
55 status_host = "chromium-cq-status.appspot.com",
56 submit_max_burst = 1,
57 submit_burst_delay = 1 * time.minute,
58)
59
60luci.gitiles_poller(
61 name = "webrtc-gitiles-trigger-master",
62 bucket = "ci",
63 repo = WEBRTC_GIT,
64)
65
66# Bucket definitions:
67
68luci.bucket(
69 name = "try",
70 acls = [
71 acl.entry(acl.BUILDBUCKET_TRIGGERER, groups = [
72 "service-account-cq",
73 "project-webrtc-tryjob-access",
74 ]),
75 ],
76)
77
78luci.bucket(
79 name = "ci",
80 acls = [
Oleh Prypinf35939d2019-05-03 20:42:38 +020081 acl.entry(acl.BUILDBUCKET_TRIGGERER, groups = [
82 "project-webrtc-ci-schedulers",
83 ], users = [
Oleh Prypin1a0593f2019-03-11 09:43:28 +010084 "luci-scheduler@appspot.gserviceaccount.com",
85 ]),
86 ],
87)
88
89luci.bucket(
90 name = "perf",
91 acls = [
92 acl.entry(acl.BUILDBUCKET_TRIGGERER, users = [
93 "luci-scheduler@appspot.gserviceaccount.com",
94 "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
95 ]),
96 ],
97)
98
99luci.bucket(
100 name = "cron",
101 acls = [
102 acl.entry(acl.BUILDBUCKET_TRIGGERER, users = [
103 "luci-scheduler@appspot.gserviceaccount.com",
104 ]),
105 ],
106)
107
108# Commit queue definitions:
109
110luci.cq_group(
111 name = "cq",
112 tree_status_host = "webrtc-status.appspot.com",
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100113 watch = [cq.refset(repo = WEBRTC_GERRIT, refs = ["refs/heads/master"])],
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100114 acls = [
115 acl.entry(acl.CQ_COMMITTER, groups = ["project-webrtc-committers"]),
116 acl.entry(acl.CQ_DRY_RUNNER, groups = ["project-webrtc-tryjob-access"]),
117 ],
118 retry_config = cq.RETRY_ALL_FAILURES,
119)
120
121luci.cq_group(
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100122 name = "cq_branch",
123 watch = [cq.refset(repo = WEBRTC_GERRIT, refs = ["refs/branch-heads/.+"])],
124 acls = [
125 acl.entry(acl.CQ_COMMITTER, groups = ["project-webrtc-committers"]),
126 acl.entry(acl.CQ_DRY_RUNNER, groups = ["project-webrtc-tryjob-access"]),
127 ],
128 retry_config = cq.RETRY_ALL_FAILURES,
129)
130
131luci.cq_group(
132 name = "cq_infra",
133 watch = [cq.refset(repo = WEBRTC_GERRIT, refs = ["refs/heads/infra/config"])],
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100134 acls = [
135 acl.entry(acl.CQ_COMMITTER, groups = ["project-webrtc-admins"]),
136 acl.entry(acl.CQ_DRY_RUNNER, groups = ["project-webrtc-tryjob-access"]),
137 ],
138 retry_config = cq.RETRY_ALL_FAILURES,
139)
140
141luci.cq_tryjob_verifier(
142 builder = "presubmit",
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100143 cq_group = "cq_infra",
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100144)
145
Oleh Prypin71d17422019-03-28 08:43:16 +0100146# Notifier definitions:
147
148luci.notifier(
149 name = "ci_notifier",
150 on_failure = True,
151 notify_emails = ["webrtc-sheriffs-robots@google.com"],
Oleh Prypin705b6a62019-04-03 23:10:51 +0200152 template = luci.notifier_template(
153 name = "ci",
154 body = io.read_file("luci-notify/email-templates/ci.template"),
155 ),
Oleh Prypin71d17422019-03-28 08:43:16 +0100156)
157
158luci.notifier(
159 name = "cron_notifier",
160 on_failure = True,
161 notify_emails = ["webrtc-troopers-robots@google.com"],
Oleh Prypin705b6a62019-04-03 23:10:51 +0200162 template = luci.notifier_template(
163 name = "cron",
164 body = io.read_file("luci-notify/email-templates/cron.template"),
165 ),
Oleh Prypin71d17422019-03-28 08:43:16 +0100166)
167
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100168# Recipe definitions:
169
170def recipe(recipe, pkg = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"):
171 return luci.recipe(
172 name = recipe.split("/")[-1],
173 cipd_package = pkg,
174 cipd_version = "refs/heads/master",
175 recipe = recipe,
176 )
177
178recipe("chromium_trybot")
179recipe("run_presubmit")
180recipe("webrtc/auto_roll_webrtc_deps")
181recipe("webrtc/ios")
182recipe("webrtc/ios_api_framework")
183recipe("webrtc/libfuzzer")
184recipe("webrtc/more_configs")
185recipe("webrtc/noop")
186recipe("webrtc/standalone")
187recipe("lkgr_finder", pkg = "infra/recipe_bundles/chromium.googlesource.com/infra/infra")
188
189# Console definitions:
190
191luci.console_view(name = "ci", title = "Main", repo = WEBRTC_GIT, header = "console-header.textpb")
192luci.console_view(name = "perf", title = "Perf", repo = WEBRTC_GIT, header = "console-header.textpb")
193luci.list_view(name = "cron", title = "Cron")
194luci.console_view(name = "fyi", title = "FYI", repo = WEBRTC_GIT, header = "console-header.textpb")
195luci.list_view(name = "try", title = "Tryserver")
196
197def add_milo(builder, views):
198 """Add Milo console entries for the builder.
199
200 Args:
201 builder: builder name (str).
202 views: dict where keys are names of consoles and values are either a
203 category for the console (str, pipe-separated) or True, which means
204 adding to a list view rather than a console.
205 """
206 for view_name, category in views.items():
207 if category == None:
208 continue
209 elif type(category) == "string":
210 category, _, short_name = category.rpartition("|")
211 luci.console_view_entry(
212 console_view = view_name,
213 builder = builder,
214 category = category or None,
215 short_name = short_name or None,
216 )
217 elif category == True:
218 luci.list_view_entry(
219 list_view = view_name,
220 builder = builder,
221 )
222 else:
223 fail("Unexpected value for category: %r" % category)
224
225# Builder-defining functions:
226
227def webrtc_builder(name, recipe = "standalone", dimensions = {}, priority = 30, **kwargs):
228 dimensions = merge_dicts({"cpu": "x86-64"}, dimensions)
229
230 return luci.builder(
231 name = name,
Oleh Prypin705b6a62019-04-03 23:10:51 +0200232 executable = recipe,
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100233 dimensions = {k: v for k, v in dimensions.items() if v != None},
234 execution_timeout = 2 * time.hour,
235 priority = priority,
236 build_numbers = True,
237 swarming_tags = ["vpython:native-python-wrapper"],
238 **kwargs
239 )
240
241def ci_builder(
242 name,
243 ci_cat,
244 perf_cat = None,
245 fyi_cat = None,
246 properties = {},
247 dimensions = {},
248 prioritized = False,
Oleh Prypinf5432c52019-03-19 15:10:37 +0100249 enabled = True,
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100250 **kwargs):
Oleh Prypine5677672019-04-25 12:21:35 +0200251 """Add a post-submit builder.
252
253 Args:
254 name: builder name (str).
255 ci_cat: the category + name for the /ci/ console, or None to omit from the console.
256 perf_cat: the category + name for the /perf/ console, or None to omit from the console.
257 fyi_cat: the category + name for the /fyi/ console, or None to omit from the console.
258 properties: dict of properties to pass to the recipe (on top of the default ones).
259 dimensions: dict of Swarming dimensions (strings) to search machines by.
260 prioritized: True to make this builder have a higher priority and never batch builds.
261 enabled: False to exclude this builder from consoles and failure notifications.
262 **kwargs: Pass on to webrtc_builder / luci.builder.
263 Returns:
264 A luci.builder.
265
266 Notifications are also disabled if a builder is not on either of /ci/ or /perf/ consoles.
267 """
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100268 if prioritized:
269 kwargs["triggering_policy"] = scheduler.greedy_batching(
270 max_batch_size = 1,
271 max_concurrent_invocations = 3,
272 )
273 kwargs["priority"] = 29
274
Oleh Prypinf5432c52019-03-19 15:10:37 +0100275 if enabled:
276 add_milo(name, {"ci": ci_cat, "perf": perf_cat, "fyi": fyi_cat})
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100277 return webrtc_builder(
278 name = name,
279 properties = merge_dicts({"mastername": "client.webrtc"}, properties),
280 dimensions = merge_dicts({"pool": "luci.webrtc.ci"}, dimensions),
281 bucket = "ci",
282 service_account = "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
Oleh Prypinf5432c52019-03-19 15:10:37 +0100283 triggered_by = ["webrtc-gitiles-trigger-master"] if enabled else None,
Oleh Prypin71d17422019-03-28 08:43:16 +0100284 repo = WEBRTC_GIT,
Oleh Prypinae12e172019-04-05 14:51:52 +0200285 notifies = ["ci_notifier"] if enabled and (ci_cat or perf_cat) else None,
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100286 **kwargs
287 )
288
289def try_builder(
290 name,
291 try_cat = True,
292 fyi_cat = None,
293 properties = {},
294 dimensions = {},
295 cq = {},
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100296 branch_cq = True,
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100297 **kwargs):
Oleh Prypine5677672019-04-25 12:21:35 +0200298 """Add a pre-submit builder.
299
300 Args:
301 name: builder name (str).
302 try_cat: boolean, whether to include this builder in the /try/ console. See also: `add_milo`.
303 fyi_cat: the category + name for the /fyi/ console, or None to omit from the console.
304 properties: dict of properties to pass to the recipe (on top of the default ones).
305 dimensions: dict of Swarming dimensions (strings) to search machines by.
306 cq: None to exclude this from all commit queues, or a dict of kwargs for cq_tryjob_verifier.
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100307 branch_cq: False to exclude this builder just from the release-branch CQ.
Oleh Prypine5677672019-04-25 12:21:35 +0200308 **kwargs: Pass on to webrtc_builder / luci.builder.
309 Returns:
310 A luci.builder.
311 """
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100312 add_milo(name, {"try": try_cat, "fyi": fyi_cat})
313 if cq != None:
314 luci.cq_tryjob_verifier(
315 builder = name,
316 cq_group = "cq",
317 **cq
318 )
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100319 if branch_cq:
320 luci.cq_tryjob_verifier(
321 builder = name,
322 cq_group = "cq_branch",
323 **cq
324 )
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100325
326 return webrtc_builder(
327 name = name,
328 properties = merge_dicts({"mastername": "tryserver.webrtc"}, properties),
329 dimensions = merge_dicts({"pool": "luci.webrtc.try"}, dimensions),
330 bucket = "try",
331 service_account = "webrtc-try-builder@chops-service-accounts.iam.gserviceaccount.com",
332 **kwargs
333 )
334
335def perf_builder(
336 name,
337 perf_cat,
338 recipe = "standalone",
339 properties = {},
340 dimensions = {},
341 **kwargs):
342 add_milo(name, {"perf": perf_cat})
343 return webrtc_builder(
344 name = name,
345 recipe = recipe,
346 properties = merge_dicts({"mastername": "client.webrtc.perf"}, properties),
347 dimensions = merge_dicts({"pool": "luci.webrtc.perf", "os": "Linux", "cpu": None}, dimensions),
348 bucket = "perf",
349 service_account = "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
350 # log_base of 1.7 means:
351 # when there are P pending builds, LUCI will batch the first B builds.
352 # P: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
353 # B: 1 1 2 2 3 3 3 3 4 4 4 4 4 4 5 ...
354 triggering_policy = scheduler.logarithmic_batching(log_base = 17 / 10),
355 **kwargs
356 )
357
358def cron_builder(name, dimensions = {}, **kwargs):
359 add_milo(name, {"cron": True})
360 return webrtc_builder(
361 name = name,
362 dimensions = merge_dicts({"pool": "luci.webrtc.cron", "os": "Linux"}, dimensions),
363 bucket = "cron",
364 service_account = "chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com",
Oleh Prypin71d17422019-03-28 08:43:16 +0100365 repo = WEBRTC_GIT,
366 notifies = ["cron_notifier"],
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100367 **kwargs
368 )
369
370# Helpers:
371
372def merge_dicts(a, b):
373 """Return the result of merging two dicts.
374
375 If matching values are both dicts or both lists, they will be merged (non-recursively).
376
377 Args:
378 a: first dict.
379 b: second dict (takes priority).
380 Returns:
381 Merged dict.
382 """
383 a = dict(a)
384 for k, bv in b.items():
385 av = a.get(k)
386 if type(av) == "dict" and type(bv) == "dict":
387 a[k] = dict(av)
388 a[k].update(bv)
389 elif type(av) == "list" and type(bv) == "list":
390 a[k] = av + bv
391 else:
392 a[k] = bv
393 return a
394
395def normal_builder_factory(**common_kwargs):
396 def builder(*args, **kwargs):
397 return ci_builder(*args, **merge_dicts(common_kwargs, kwargs))
398
399 def try_job(*args, **kwargs):
400 return try_builder(*args, **merge_dicts(common_kwargs, kwargs))
401
402 return builder, try_job
403
404# Mixins:
405
406linux_builder, linux_try_job = normal_builder_factory(
407 dimensions = {"os": "Linux", "inside_docker": "0"},
408)
409
410android_builder, android_try_job = normal_builder_factory(
411 dimensions = {"os": "Linux"},
412)
413
414win_builder, win_try_job = normal_builder_factory(
415 dimensions = {"os": "Windows"},
416)
417
418mac_builder, mac_try_job = normal_builder_factory(
419 dimensions = {"os": "Mac"},
420)
421
422ios_builder, ios_try_job = normal_builder_factory(
423 dimensions = {"os": "Mac-10.13"},
424 recipe = "ios",
425 properties = {"$depot_tools/osx_sdk": {"sdk_version": "10l232m"}},
426 caches = [swarming.cache("osx_sdk")],
427)
428
429# Actual builder configuration:
430
431android_builder("Android32 (M Nexus5X)(dbg)", "Android|arm|dbg")
432android_try_job("android_compile_arm_dbg", cq = None)
433android_try_job("android_arm_dbg")
434android_builder("Android32 (M Nexus5X)", "Android|arm|rel")
435android_try_job("android_arm_rel")
436android_builder("Android32 Builder arm", "Android|arm|size", perf_cat = "Android|arm|Builder|", prioritized = True)
437android_try_job("android_compile_arm_rel")
438perf_builder("Perf Android32 (L Nexus4)", "Android|arm|Tester|L Nexus4", triggered_by = ["Android32 Builder arm"])
439perf_builder("Perf Android32 (K Nexus5)", "Android|arm|Tester|K Nexus5", triggered_by = ["Android32 Builder arm"])
440perf_builder("Perf Android32 (L Nexus5)", "Android|arm|Tester|L Nexus5", triggered_by = ["Android32 Builder arm"])
441perf_builder("Perf Android32 (L Nexus6)", "Android|arm|Tester|L Nexus6", triggered_by = ["Android32 Builder arm"])
442perf_builder("Perf Android32 (L Nexus7.2)", "Android|arm|Tester|L Nexus7.2", triggered_by = ["Android32 Builder arm"])
443perf_builder("Perf Android32 (N Nexus6)", "Android|arm|Tester|N Nexus6", triggered_by = ["Android32 Builder arm"])
444android_builder("Android64 (M Nexus5X)(dbg)", "Android|arm64|dbg")
445android_try_job("android_compile_arm64_dbg", cq = None)
446android_try_job("android_arm64_dbg", cq = None)
447android_builder("Android64 (M Nexus5X)", "Android|arm64|rel")
448android_try_job("android_arm64_rel")
449android_builder("Android64 Builder arm64", "Android|arm64|size", perf_cat = "Android|arm64|Builder|", prioritized = True)
450android_try_job("android_compile_arm64_rel")
451perf_builder("Perf Android64 (L Nexus9)", "Android|arm64|Tester|L Nexus9", triggered_by = ["Android64 Builder arm64"])
452perf_builder("Perf Android64 (N Pixel)", "Android|arm64|Tester|N Pixel", triggered_by = ["Android64 Builder arm64"])
453android_builder("Android64 Builder x64 (dbg)", "Android|x64|dbg")
454android_try_job("android_compile_x64_dbg")
455android_try_job("android_compile_x64_rel", cq = None)
456android_builder("Android32 Builder x86 (dbg)", "Android|x86|dbg")
457android_try_job("android_compile_x86_dbg")
458android_builder("Android32 Builder x86", "Android|x86|rel")
459android_try_job("android_compile_x86_rel")
460android_builder("Android32 (more configs)", "Android|arm|more", recipe = "more_configs")
461android_try_job("android_arm_more_configs", recipe = "more_configs")
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100462android_try_job("android_chromium_compile", recipe = "chromium_trybot", branch_cq = False)
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100463
464ios_builder("iOS32 Debug", "iOS|arm|dbg")
465ios_try_job("ios_compile_arm_dbg")
466ios_builder("iOS32 Release", "iOS|arm|rel")
467ios_try_job("ios_compile_arm_rel")
468ios_builder("iOS64 Debug", "iOS|arm64|dbg")
469ios_try_job("ios_compile_arm64_dbg")
470ios_builder("iOS64 Release", "iOS|arm64|rel")
471ios_try_job("ios_compile_arm64_rel")
472ios_builder("iOS64 Sim Debug (iOS 10.0)", "iOS|x64|10")
473ios_try_job("ios_sim_x64_dbg_ios10")
474ios_builder("iOS64 Sim Debug (iOS 11)", "iOS|x64|11")
475ios_try_job("ios_sim_x64_dbg_ios11")
476ios_builder("iOS64 Sim Debug (iOS 12)", "iOS|x64|12")
477ios_try_job("ios_sim_x64_dbg_ios12")
478ios_builder("iOS API Framework Builder", "iOS|fat|size", recipe = "ios_api_framework", prioritized = True)
479ios_try_job("ios_api_framework", recipe = "ios_api_framework")
480
481linux_builder("Linux32 Debug", "Linux|x86|dbg")
482linux_try_job("linux_x86_dbg")
483linux_builder("Linux32 Release", "Linux|x86|rel")
484linux_try_job("linux_x86_rel")
485linux_builder("Linux64 Debug", "Linux|x64|dbg")
486linux_try_job("linux_dbg", cq = None)
487linux_try_job("linux_compile_dbg")
488linux_builder("Linux64 Release", "Linux|x64|rel")
489linux_try_job("linux_rel")
490linux_builder("Linux64 Builder", "Linux|x64|size", perf_cat = "Linux|x64|Builder|", prioritized = True)
491linux_try_job("linux_compile_rel")
492perf_builder("Perf Linux Trusty", "Linux|x64|Tester|Trusty", triggered_by = ["Linux64 Builder"])
493linux_builder("Linux32 Debug (ARM)", "Linux|arm|dbg")
494linux_try_job("linux_compile_arm_dbg")
495linux_builder("Linux32 Release (ARM)", "Linux|arm|rel")
496linux_try_job("linux_compile_arm_rel")
497linux_builder("Linux64 Debug (ARM)", "Linux|arm64|dbg")
498linux_try_job("linux_compile_arm64_dbg")
499linux_builder("Linux64 Release (ARM)", "Linux|arm64|rel")
500linux_try_job("linux_compile_arm64_rel")
501linux_builder("Linux64 Release (GCC)", "Linux|x64|gcc")
502linux_try_job("linux_compile_gcc_rel")
503linux_builder("Linux Asan", "Linux|x64|asan")
504linux_try_job("linux_asan")
505linux_builder("Linux MSan", "Linux|x64|msan")
506linux_try_job("linux_msan")
507linux_builder("Linux Tsan v2", "Linux|x64|tsan")
508linux_try_job("linux_tsan2")
509linux_builder("Linux UBSan", "Linux|x64|ubsan")
510linux_try_job("linux_ubsan")
511linux_builder("Linux UBSan vptr", "Linux|x64|ubsan")
512linux_try_job("linux_ubsan_vptr")
513linux_builder("Linux64 Release (Libfuzzer)", "Linux|x64|fuzz", recipe = "libfuzzer")
514linux_try_job("linux_libfuzzer_rel", recipe = "libfuzzer")
515linux_builder("Linux (more configs)", "Linux|x64|more", recipe = "more_configs")
516linux_try_job("linux_more_configs", recipe = "more_configs")
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100517linux_try_job("linux_chromium_compile", recipe = "chromium_trybot", branch_cq = False)
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100518
519mac_builder("Mac64 Debug", "Mac|x64|dbg")
520mac_try_job("mac_dbg", cq = None)
521mac_try_job("mac_compile_dbg")
522mac_builder("Mac64 Release", "Mac|x64|rel")
523mac_try_job("mac_rel")
524mac_try_job("mac_compile_rel", cq = None)
525mac_builder("Mac64 Builder", ci_cat = None, perf_cat = "Mac|x64|Builder|")
526perf_builder("Perf Mac 10.11", "Mac|x64|Tester|10.11", triggered_by = ["Mac64 Builder"])
527mac_builder("Mac Asan", "Mac|x64|asan")
528mac_try_job("mac_asan")
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100529mac_try_job("mac_chromium_compile", recipe = "chromium_trybot", dimensions = {"cores": "8"}, branch_cq = False)
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100530
531win_builder("Win32 Debug", "Win MSVC|x86|dbg")
532win_try_job("win_x86_msvc_dbg")
533win_try_job("win_compile_x86_msvc_dbg", cq = None)
Oleh Prypin63041b82019-03-19 22:56:01 +0000534win_builder("Win32 Release", "Win MSVC|x86|rel")
535win_try_job("win_x86_msvc_rel")
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100536win_try_job("win_compile_x86_msvc_rel", cq = None)
537win_builder("Win64 Debug", "Win MSVC|x64|dbg")
538win_try_job("win_x64_msvc_dbg")
539win_try_job("win_compile_x64_msvc_dbg", cq = None)
540win_builder("Win64 Release", "Win MSVC|x64|rel")
541win_try_job("win_x64_msvc_rel")
542win_try_job("win_compile_x64_msvc_rel", cq = None)
543win_builder("Win32 Debug (Clang)", "Win Clang|x86|dbg")
544win_try_job("win_x86_clang_dbg", cq = None)
545win_try_job("win_compile_x86_clang_dbg")
546win_builder("Win32 Release (Clang)", "Win Clang|x86|rel")
547win_try_job("win_x86_clang_rel")
548win_try_job("win_compile_x86_clang_rel", cq = None)
549win_builder("Win32 Builder (Clang)", ci_cat = None, perf_cat = "Win|x86|Builder|")
550perf_builder("Perf Win7", "Win|x86|Tester|7", triggered_by = ["Win32 Builder (Clang)"])
551win_builder("Win64 Debug (Clang)", "Win Clang|x64|dbg")
552win_try_job("win_x64_clang_dbg", cq = None)
553win_try_job("win_x64_clang_dbg_win8", cq = None)
554win_try_job("win_x64_clang_dbg_win10", cq = None)
555win_try_job("win_compile_x64_clang_dbg")
556win_builder("Win64 Release (Clang)", "Win Clang|x64|rel")
557win_try_job("win_x64_clang_rel", cq = None)
558win_try_job("win_compile_x64_clang_rel")
Mirko Bonadeiafbe33d2019-05-31 09:27:54 +0200559win_builder("Win64 ASan", "Win Clang|x64|asan")
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100560win_try_job("win_asan")
561win_builder("Win64 UWP", ci_cat = None, fyi_cat = "")
562win_try_job("win_x64_uwp", cq = None, try_cat = None, fyi_cat = "")
563win_builder("Win (more configs)", "Win Clang|x86|more", recipe = "more_configs")
564win_try_job("win_x86_more_configs", recipe = "more_configs")
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100565win_try_job("win_chromium_compile", recipe = "chromium_trybot", branch_cq = False)
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100566
567linux_try_job(
568 "presubmit",
569 recipe = "run_presubmit",
570 properties = {"repo_name": "webrtc", "runhooks": True},
571 priority = 28,
572 cq = {"disable_reuse": True},
573)
574linux_try_job("noop", recipe = "noop", cq = {
Oleh Prypinb9386cc2019-05-29 21:12:24 +0200575 "equivalent_builder": "*:g3.webrtc-internal.try/internal_compile_lite",
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100576 "equivalent_builder_percentage": 100,
577 "equivalent_builder_whitelist": "project-webrtc-internal-tryjob-access",
Oleh Prypin7d1cabe2019-03-14 15:10:30 +0100578}, branch_cq = False)
Oleh Prypin1a0593f2019-03-11 09:43:28 +0100579
580cron_builder(
581 "Auto-roll - WebRTC DEPS",
582 recipe = "auto_roll_webrtc_deps",
583 schedule = "0 */1 * * *", # Hourly.
584)
585cron_builder(
586 "WebRTC lkgr finder",
587 recipe = "lkgr_finder",
588 properties = {"lkgr_project": "webrtc", "allowed_lag": 4},
589 schedule = "*/10 * * * *", # Every 10 minutes.
590)