blob: eff4853a0ce38c40079f0d85d9892dd69a5a206b [file] [log] [blame]
# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Definitions of builders in the chromium.fuzz builder group."""
load("//lib/builders.star", "os", "reclient", "sheriff_rotations", "xcode")
load("//lib/ci.star", "ci")
load("//lib/consoles.star", "consoles")
ci.defaults.set(
builder_group = "chromium.fuzz",
cores = 8,
executable = ci.DEFAULT_EXECUTABLE,
execution_timeout = ci.DEFAULT_EXECUTION_TIMEOUT,
reclient_instance = reclient.instance.DEFAULT_TRUSTED,
reclient_jobs = reclient.jobs.DEFAULT,
notifies = ["chromesec-lkgr-failures"],
os = os.LINUX_DEFAULT,
pool = ci.DEFAULT_POOL,
service_account = ci.DEFAULT_SERVICE_ACCOUNT,
sheriff_rotations = sheriff_rotations.CHROMIUM_FUZZ,
# TODO(crbug.com/1362440): remove this.
omit_python2 = False,
)
consoles.console_view(
name = "chromium.fuzz",
ordering = {
None: [
"afl",
"win asan",
"mac asan",
"cros asan",
"linux asan",
"libfuzz",
"linux msan",
"linux tsan",
],
"*config*": consoles.ordering(short_names = ["dbg", "rel"]),
"win asan": "*config*",
"mac asan": "*config*",
"linux asan": "*config*",
"linux asan|x64 v8-ARM": "*config*",
"libfuzz": consoles.ordering(short_names = [
"chromeos-asan",
"linux32",
"linux32-dbg",
"linux",
"linux-dbg",
"linux-msan",
"linux-ubsan",
"mac-asan",
"win-asan",
]),
},
)
ci.builder(
name = "ASAN Debug",
console_view_entry = consoles.console_view_entry(
category = "linux asan",
short_name = "dbg",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
reclient_jobs = 250,
)
ci.builder(
name = "ASan Debug (32-bit x86 with V8-ARM)",
console_view_entry = consoles.console_view_entry(
category = "linux asan|x64 v8-ARM",
short_name = "dbg",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
)
ci.builder(
name = "ASAN Release",
console_view_entry = consoles.console_view_entry(
category = "linux asan",
short_name = "rel",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 5,
),
reclient_jobs = 250,
)
ci.builder(
name = "ASan Release (32-bit x86 with V8-ARM)",
console_view_entry = consoles.console_view_entry(
category = "linux asan|x64 v8-ARM",
short_name = "rel",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
)
ci.builder(
name = "ASAN Release Media",
console_view_entry = consoles.console_view_entry(
category = "linux asan",
short_name = "med",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
reclient_jobs = 250,
)
ci.builder(
name = "Afl Upload Linux ASan",
console_view_entry = consoles.console_view_entry(
category = "afl",
short_name = "afl",
),
cores = 16,
executable = "recipe:chromium_afl",
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
)
ci.builder(
name = "ASan Release Media (32-bit x86 with V8-ARM)",
console_view_entry = consoles.console_view_entry(
category = "linux asan|x64 v8-ARM",
short_name = "med",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
)
ci.builder(
name = "ChromiumOS ASAN Release",
console_view_entry = consoles.console_view_entry(
category = "cros asan",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 6,
),
reclient_jobs = reclient.jobs.HIGH_JOBS_FOR_CI,
)
ci.builder(
name = "MSAN Release (chained origins)",
console_view_entry = consoles.console_view_entry(
category = "linux msan",
short_name = "org",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
reclient_jobs = 250,
)
ci.builder(
name = "MSAN Release (no origins)",
console_view_entry = consoles.console_view_entry(
category = "linux msan",
short_name = "rel",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
reclient_jobs = 250,
)
ci.builder(
name = "Mac ASAN Release",
builderless = False,
console_view_entry = consoles.console_view_entry(
category = "mac asan",
short_name = "rel",
),
cores = 4,
os = os.MAC_DEFAULT,
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 2,
),
)
ci.builder(
name = "Mac ASAN Release Media",
builderless = False,
console_view_entry = consoles.console_view_entry(
category = "mac asan",
short_name = "med",
),
cores = 4,
os = os.MAC_DEFAULT,
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 2,
),
)
ci.builder(
name = "TSAN Debug",
console_view_entry = consoles.console_view_entry(
category = "linux tsan",
short_name = "dbg",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
reclient_jobs = 250,
)
ci.builder(
name = "TSAN Release",
console_view_entry = consoles.console_view_entry(
category = "linux tsan",
short_name = "rel",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 3,
),
reclient_jobs = 250,
)
ci.builder(
name = "UBSan Release",
console_view_entry = consoles.console_view_entry(
category = "linux UBSan",
short_name = "rel",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
reclient_jobs = 250,
)
ci.builder(
name = "UBSan vptr Release",
console_view_entry = consoles.console_view_entry(
category = "linux UBSan",
short_name = "vpt",
),
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 4,
),
reclient_jobs = 250,
)
ci.builder(
name = "Win ASan Release",
builderless = False,
console_view_entry = consoles.console_view_entry(
category = "win asan",
short_name = "rel",
),
os = os.WINDOWS_DEFAULT,
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 7,
),
reclient_jobs = reclient.jobs.LOW_JOBS_FOR_CI,
)
ci.builder(
name = "Win ASan Release Media",
builderless = False,
console_view_entry = consoles.console_view_entry(
category = "win asan",
short_name = "med",
),
os = os.WINDOWS_DEFAULT,
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 6,
),
reclient_jobs = reclient.jobs.LOW_JOBS_FOR_CI,
)
ci.builder(
name = "Libfuzzer Upload Chrome OS ASan",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "chromeos-asan",
),
executable = "recipe:chromium_libfuzzer",
execution_timeout = 4 * time.hour,
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 3,
),
reclient_jobs = reclient.jobs.LOW_JOBS_FOR_CI,
)
ci.builder(
name = "Libfuzzer Upload iOS Catalyst Debug",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "ios",
),
cores = 4,
executable = "recipe:chromium_libfuzzer",
execution_timeout = 4 * time.hour,
os = os.MAC_12,
xcode = xcode.x14main,
)
ci.builder(
name = "Libfuzzer Upload Linux ASan",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "linux",
),
executable = "recipe:chromium_libfuzzer",
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 5,
),
reclient_jobs = reclient.jobs.HIGH_JOBS_FOR_CI,
)
ci.builder(
name = "Libfuzzer Upload Linux ASan Debug",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "linux-dbg",
),
executable = "recipe:chromium_libfuzzer",
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 5,
),
reclient_jobs = reclient.jobs.HIGH_JOBS_FOR_CI,
execution_timeout = 4 * time.hour,
)
ci.builder(
name = "Libfuzzer Upload Linux MSan",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "linux-msan",
),
executable = "recipe:chromium_libfuzzer",
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 5,
),
reclient_jobs = reclient.jobs.HIGH_JOBS_FOR_CI,
)
ci.builder(
name = "Libfuzzer Upload Linux UBSan",
# Do not use builderless for this (crbug.com/980080).
builderless = False,
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "linux-ubsan",
),
executable = "recipe:chromium_libfuzzer",
execution_timeout = 5 * time.hour,
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 5,
),
reclient_jobs = reclient.jobs.HIGH_JOBS_FOR_CI,
)
ci.builder(
name = "Libfuzzer Upload Linux V8-ARM64 ASan",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "arm64",
),
executable = "recipe:chromium_libfuzzer",
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 1,
),
)
ci.builder(
name = "Libfuzzer Upload Linux V8-ARM64 ASan Debug",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "arm64-dbg",
),
executable = "recipe:chromium_libfuzzer",
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 1,
),
)
ci.builder(
name = "Libfuzzer Upload Linux32 ASan",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "linux32",
),
executable = "recipe:chromium_libfuzzer",
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 3,
),
reclient_jobs = reclient.jobs.HIGH_JOBS_FOR_CI,
)
ci.builder(
name = "Libfuzzer Upload Linux32 ASan Debug",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "linux32-dbg",
),
executable = "recipe:chromium_libfuzzer",
execution_timeout = 4 * time.hour,
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 3,
),
reclient_jobs = reclient.jobs.HIGH_JOBS_FOR_CI,
)
ci.builder(
name = "Libfuzzer Upload Linux32 V8-ARM ASan",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "arm",
),
executable = "recipe:chromium_libfuzzer",
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 1,
),
reclient_jobs = reclient.jobs.DEFAULT,
)
ci.builder(
name = "Libfuzzer Upload Linux32 V8-ARM ASan Debug",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "arm-dbg",
),
executable = "recipe:chromium_libfuzzer",
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 1,
),
)
ci.builder(
name = "Libfuzzer Upload Mac ASan",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "mac-asan",
),
cores = 24,
executable = "recipe:chromium_libfuzzer",
execution_timeout = 4 * time.hour,
os = os.MAC_DEFAULT,
)
ci.builder(
name = "Libfuzzer Upload Windows ASan",
console_view_entry = consoles.console_view_entry(
category = "libfuzz",
short_name = "win-asan",
),
# crbug.com/1175182: Temporarily increase timeout
# crbug.com/1372531: Increase timeout again
execution_timeout = 6 * time.hour,
executable = "recipe:chromium_libfuzzer",
os = os.WINDOWS_DEFAULT,
triggering_policy = scheduler.greedy_batching(
max_concurrent_invocations = 3,
),
reclient_jobs = reclient.jobs.LOW_JOBS_FOR_CI,
)