Commit d021ddba authored by Garrett Beaty's avatar Garrett Beaty Committed by Commit Bot

Add a library for defining try builders.

Change-Id: Icce42767b820205c3e38ce83f97906b0dd7f600c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2025833Reviewed-by: default avatarAaron Gable <agable@chromium.org>
Commit-Queue: Garrett Beaty <gbeaty@chromium.org>
Cr-Commit-Position: refs/heads/master@{#736559}
parent 1064f4cd
load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os') load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os')
load('//lib/try.star', 'try_')
defaults.bucket.set('try')
defaults.build_numbers.set(True) try_.defaults.bucket.set('try')
defaults.configure_kitchen.set(True) try_.defaults.build_numbers.set(True)
defaults.cores.set(8) try_.defaults.configure_kitchen.set(True)
defaults.cpu.set(cpu.X86_64) try_.defaults.cores.set(8)
defaults.executable.set('recipe:chromium_trybot') try_.defaults.cpu.set(cpu.X86_64)
defaults.execution_timeout.set(6 * time.hour) try_.defaults.cq_group.set('cq')
defaults.expiration_timeout.set(2 * time.hour) try_.defaults.executable.set('recipe:chromium_trybot')
defaults.os.set(os.LINUX_DEFAULT) try_.defaults.execution_timeout.set(6 * time.hour)
defaults.service_account.set('chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com') try_.defaults.expiration_timeout.set(2 * time.hour)
defaults.swarming_tags.set(['vpython:native-python-wrapper']) try_.defaults.os.set(os.LINUX_DEFAULT)
defaults.task_template_canary_percentage.set(5) try_.defaults.service_account.set('chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com')
try_.defaults.swarming_tags.set(['vpython:native-python-wrapper'])
defaults.caches.set([ try_.defaults.task_template_canary_percentage.set(5)
try_.defaults.caches.set([
swarming.cache( swarming.cache(
name = 'win_toolchain', name = 'win_toolchain',
path = 'win_toolchain', path = 'win_toolchain',
...@@ -21,47 +23,6 @@ defaults.caches.set([ ...@@ -21,47 +23,6 @@ defaults.caches.set([
]) ])
def tryjob(
*,
disable_reuse=None,
experiment_percentage=None,
location_regexp=None,
location_regexp_exclude=None):
return struct(
disable_reuse = disable_reuse,
experiment_percentage = experiment_percentage,
location_regexp = location_regexp,
location_regexp_exclude = location_regexp_exclude,
)
def try_builder(
*,
name,
tryjob=None,
**kwargs):
if tryjob != None:
luci.cq_tryjob_verifier(
builder = 'try/' + name,
cq_group = 'cq',
disable_reuse = tryjob.disable_reuse,
experiment_percentage = tryjob.experiment_percentage,
location_regexp = tryjob.location_regexp,
location_regexp_exclude = tryjob.location_regexp_exclude,
)
else:
# Allow CQ to trigger this builder if user opts in via CQ-Include-Trybots.
luci.cq_tryjob_verifier(
builder = 'try/' + name,
cq_group = 'cq',
includable_only = True,
)
return builder(
name = name,
**kwargs
)
# Builders appear after the function used to define them, with all builders # Builders appear after the function used to define them, with all builders
# defined using the same function ordered lexicographically by name # defined using the same function ordered lexicographically by name
# Builder functions are defined in lexicographic order by name ignoring the # Builder functions are defined in lexicographic order by name ignoring the
...@@ -75,7 +36,7 @@ def try_builder( ...@@ -75,7 +36,7 @@ def try_builder(
# after the last dot in the mastername and YYY is the OS # after the last dot in the mastername and YYY is the OS
def gpu_android_builder(*, name, **kwargs): def gpu_android_builder(*, name, **kwargs):
return try_builder( return try_.builder(
name = name, name = name,
builderless = True, builderless = True,
goma_backend = goma.backend.RBE_PROD, goma_backend = goma.backend.RBE_PROD,
...@@ -161,7 +122,7 @@ gpu_android_builder( ...@@ -161,7 +122,7 @@ gpu_android_builder(
def gpu_linux_builder(*, name, **kwargs): def gpu_linux_builder(*, name, **kwargs):
return try_builder( return try_.builder(
name = name, name = name,
builderless = True, builderless = True,
goma_backend = goma.backend.RBE_PROD, goma_backend = goma.backend.RBE_PROD,
...@@ -237,7 +198,7 @@ gpu_linux_builder( ...@@ -237,7 +198,7 @@ gpu_linux_builder(
def gpu_mac_builder(*, name, **kwargs): def gpu_mac_builder(*, name, **kwargs):
return try_builder( return try_.builder(
name = name, name = name,
builderless = True, builderless = True,
cores = None, cores = None,
...@@ -331,7 +292,7 @@ gpu_mac_builder( ...@@ -331,7 +292,7 @@ gpu_mac_builder(
def gpu_win_builder(*, name, **kwargs): def gpu_win_builder(*, name, **kwargs):
return try_builder( return try_.builder(
name = name, name = name,
builderless = True, builderless = True,
goma_backend = goma.backend.RBE_PROD, goma_backend = goma.backend.RBE_PROD,
......
load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os') load('//lib/builders.star', 'cpu', 'goma', 'os')
load('//lib/try.star', 'try_')
# Defaults that apply to all branch versions of the bucket # Defaults that apply to all branch versions of the bucket
defaults.build_numbers.set(True) try_.defaults.build_numbers.set(True)
defaults.configure_kitchen.set(True) try_.defaults.configure_kitchen.set(True)
defaults.cores.set(8) try_.defaults.cores.set(8)
defaults.cpu.set(cpu.X86_64) try_.defaults.cpu.set(cpu.X86_64)
defaults.executable.set('recipe:chromium_trybot') try_.defaults.executable.set('recipe:chromium_trybot')
defaults.execution_timeout.set(4 * time.hour) try_.defaults.execution_timeout.set(4 * time.hour)
# Max. pending time for builds. CQ considers builds pending >2h as timed # Max. pending time for builds. CQ considers builds pending >2h as timed
# out: http://shortn/_8PaHsdYmlq. Keep this in sync. # out: http://shortn/_8PaHsdYmlq. Keep this in sync.
defaults.expiration_timeout.set(2 * time.hour) try_.defaults.expiration_timeout.set(2 * time.hour)
defaults.os.set(os.LINUX_DEFAULT) try_.defaults.os.set(os.LINUX_DEFAULT)
defaults.service_account.set('chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com') try_.defaults.service_account.set('chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com')
defaults.swarming_tags.set(['vpython:native-python-wrapper']) try_.defaults.swarming_tags.set(['vpython:native-python-wrapper'])
defaults.task_template_canary_percentage.set(5) try_.defaults.task_template_canary_percentage.set(5)
defaults.caches.set([ try_.defaults.caches.set([
swarming.cache( swarming.cache(
name = 'win_toolchain', name = 'win_toolchain',
path = 'win_toolchain', path = 'win_toolchain',
...@@ -24,47 +25,6 @@ defaults.caches.set([ ...@@ -24,47 +25,6 @@ defaults.caches.set([
]) ])
def tryjob(
*,
disable_reuse=None,
experiment_percentage=None,
location_regexp=None,
location_regexp_exclude=None):
return struct(
disable_reuse = disable_reuse,
experiment_percentage = experiment_percentage,
location_regexp = location_regexp,
location_regexp_exclude = location_regexp_exclude,
)
def try_builder(
*,
name,
tryjob=None,
**kwargs):
if tryjob != None:
luci.cq_tryjob_verifier(
builder = 'try/' + name,
cq_group = 'cq',
disable_reuse = tryjob.disable_reuse,
experiment_percentage = tryjob.experiment_percentage,
location_regexp = tryjob.location_regexp,
location_regexp_exclude = tryjob.location_regexp_exclude,
)
else:
# Allow CQ to trigger this builder if user opts in via CQ-Include-Trybots.
luci.cq_tryjob_verifier(
builder = 'try/' + name,
cq_group = 'cq',
includable_only = True,
)
return builder(
name = name,
**kwargs
)
# Execute the versioned files to define all of the per-branch entities # Execute the versioned files to define all of the per-branch entities
# (bucket, builders, console, cq_group, etc.) # (bucket, builders, console, cq_group, etc.)
exec('//versioned/branches/beta/buckets/try.star') exec('//versioned/branches/beta/buckets/try.star')
...@@ -73,48 +33,85 @@ exec('//versioned/trunk/buckets/try.star') ...@@ -73,48 +33,85 @@ exec('//versioned/trunk/buckets/try.star')
# *** After this point everything is trunk only *** # *** After this point everything is trunk only ***
defaults.bucket.set('try') try_.defaults.bucket.set('try')
try_.defaults.cq_group.set('cq')
# Builders appear after the function used to define them, with all builders # Builders are sorted first lexicographically by the function used to define
# defined using the same function ordered lexicographically by name # them, then lexicographically by their name
# Builder functions are defined in lexicographic order by name ignoring the
# '_builder' suffix
# Builder functions are defined for GPU builders on each master where they
# appear: gpu_XXX_builder where XXX is the part after the last dot in the
# mastername
# Builder functions are defined for each master, with additional functions
# for specializing on OS: XXX_builder and XXX_YYY_builder where XXX is the part
# after the last dot in the mastername and YYY is the OS
try_.blink_builder(
name = 'linux-blink-rel',
goma_backend = goma.backend.RBE_PROD,
tryjob = try_.job(
location_regexp = [
'.+/[+]/cc/.+',
'.+/[+]/third_party/blink/renderer/core/paint/.+',
'.+/[+]/third_party/blink/renderer/core/svg/.+',
'.+/[+]/third_party/blink/renderer/platform/graphics/.+',
],
),
)
def android_builder(*, name, **kwargs): try_.blink_builder(
return try_builder( name = 'win10-blink-rel',
name = name, goma_backend = goma.backend.RBE_PROD,
goma_backend = goma.backend.RBE_PROD, os = os.WINDOWS_ANY,
mastername = 'tryserver.chromium.android', builderless = True,
**kwargs )
)
try_.blink_builder(
name = 'win7-blink-rel',
goma_backend = goma.backend.RBE_PROD,
os = os.WINDOWS_ANY,
builderless = True,
)
try_.blink_mac_builder(
name = 'mac10.10-blink-rel',
)
try_.blink_mac_builder(
name = 'mac10.11-blink-rel',
)
try_.blink_mac_builder(
name = 'mac10.12-blink-rel',
)
try_.blink_mac_builder(
name = 'mac10.13-blink-rel',
)
try_.blink_mac_builder(
name = 'mac10.13_retina-blink-rel',
)
android_builder( try_.blink_mac_builder(
name = 'mac10.14-blink-rel',
)
try_.chromium_android_builder(
name = 'android-asan', name = 'android-asan',
) )
android_builder( try_.chromium_android_builder(
name = 'android-bfcache-debug', name = 'android-bfcache-debug',
) )
android_builder( try_.chromium_android_builder(
name = 'android-binary-size', name = 'android-binary-size',
executable = 'recipe:binary_size_trybot', executable = 'recipe:binary_size_trybot',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
) )
android_builder( try_.chromium_android_builder(
name = 'android-cronet-arm-dbg', name = 'android-cronet-arm-dbg',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/components/cronet/.+', '.+/[+]/components/cronet/.+',
'.+/[+]/components/grpc_support/.+', '.+/[+]/components/grpc_support/.+',
...@@ -127,41 +124,41 @@ android_builder( ...@@ -127,41 +124,41 @@ android_builder(
), ),
) )
android_builder( try_.chromium_android_builder(
name = 'android-deterministic-dbg', name = 'android-deterministic-dbg',
executable = 'recipe:swarming/deterministic_build', executable = 'recipe:swarming/deterministic_build',
execution_timeout = 6 * time.hour, execution_timeout = 6 * time.hour,
) )
android_builder( try_.chromium_android_builder(
name = 'android-deterministic-rel', name = 'android-deterministic-rel',
executable = 'recipe:swarming/deterministic_build', executable = 'recipe:swarming/deterministic_build',
execution_timeout = 6 * time.hour, execution_timeout = 6 * time.hour,
) )
android_builder( try_.chromium_android_builder(
name = 'android-lollipop-arm-rel', name = 'android-lollipop-arm-rel',
) )
android_builder( try_.chromium_android_builder(
name = 'android-marshmallow-x86-fyi-rel', name = 'android-marshmallow-x86-fyi-rel',
) )
android_builder( try_.chromium_android_builder(
name = 'android-opus-kitkat-arm-rel', name = 'android-opus-kitkat-arm-rel',
) )
android_builder( try_.chromium_android_builder(
name = 'android-oreo-arm64-cts-networkservice-dbg', name = 'android-oreo-arm64-cts-networkservice-dbg',
) )
android_builder( try_.chromium_android_builder(
name = 'android-oreo-arm64-dbg', name = 'android-oreo-arm64-dbg',
) )
android_builder( try_.chromium_android_builder(
name = 'android-pie-arm64-dbg', name = 'android-pie-arm64-dbg',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/chrome/android/features/vr/.+', '.+/[+]/chrome/android/features/vr/.+',
'.+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+', '.+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+',
...@@ -174,11 +171,11 @@ android_builder( ...@@ -174,11 +171,11 @@ android_builder(
), ),
) )
android_builder( try_.chromium_android_builder(
name = 'android-pie-x86-fyi-rel', name = 'android-pie-x86-fyi-rel',
) )
android_builder( try_.chromium_android_builder(
name = 'android-pie-arm64-coverage-rel', name = 'android-pie-arm64-coverage-rel',
cores = 16, cores = 16,
goma_jobs = goma.jobs.J300, goma_jobs = goma.jobs.J300,
...@@ -186,69 +183,69 @@ android_builder( ...@@ -186,69 +183,69 @@ android_builder(
use_clang_coverage = True, use_clang_coverage = True,
) )
android_builder( try_.chromium_android_builder(
name = 'android-pie-arm64-rel', name = 'android-pie-arm64-rel',
cores = 16, cores = 16,
goma_jobs = goma.jobs.J300, goma_jobs = goma.jobs.J300,
ssd = True, ssd = True,
) )
android_builder( try_.chromium_android_builder(
name = 'android-10-arm64-rel', name = 'android-10-arm64-rel',
) )
android_builder( try_.chromium_android_builder(
name = 'android-webview-marshmallow-arm64-dbg', name = 'android-webview-marshmallow-arm64-dbg',
) )
android_builder( try_.chromium_android_builder(
name = 'android-webview-nougat-arm64-dbg', name = 'android-webview-nougat-arm64-dbg',
) )
android_builder( try_.chromium_android_builder(
name = 'android-webview-oreo-arm64-dbg', name = 'android-webview-oreo-arm64-dbg',
) )
android_builder( try_.chromium_android_builder(
name = 'android-webview-pie-arm64-dbg', name = 'android-webview-pie-arm64-dbg',
) )
android_builder( try_.chromium_android_builder(
name = 'android-webview-pie-arm64-fyi-rel', name = 'android-webview-pie-arm64-fyi-rel',
) )
android_builder( try_.chromium_android_builder(
name = 'android_archive_rel_ng', name = 'android_archive_rel_ng',
) )
android_builder( try_.chromium_android_builder(
name = 'android_arm64_dbg_recipe', name = 'android_arm64_dbg_recipe',
goma_jobs = goma.jobs.J300, goma_jobs = goma.jobs.J300,
) )
android_builder( try_.chromium_android_builder(
name = 'android_blink_rel', name = 'android_blink_rel',
) )
android_builder( try_.chromium_android_builder(
name = 'android_cfi_rel_ng', name = 'android_cfi_rel_ng',
cores = 32, cores = 32,
) )
android_builder( try_.chromium_android_builder(
name = 'android_clang_dbg_recipe', name = 'android_clang_dbg_recipe',
goma_jobs = goma.jobs.J300, goma_jobs = goma.jobs.J300,
) )
android_builder( try_.chromium_android_builder(
name = 'android_compile_dbg', name = 'android_compile_dbg',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
) )
android_builder( try_.chromium_android_builder(
name = 'android_compile_x64_dbg', name = 'android_compile_x64_dbg',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+', '.+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+',
'.+/[+]/chrome/browser/vr/.+', '.+/[+]/chrome/browser/vr/.+',
...@@ -261,9 +258,9 @@ android_builder( ...@@ -261,9 +258,9 @@ android_builder(
), ),
) )
android_builder( try_.chromium_android_builder(
name = 'android_compile_x86_dbg', name = 'android_compile_x86_dbg',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+', '.+/[+]/chrome/android/java/src/org/chromium/chrome/browser/vr/.+',
'.+/[+]/chrome/browser/vr/.+', '.+/[+]/chrome/browser/vr/.+',
...@@ -276,237 +273,114 @@ android_builder( ...@@ -276,237 +273,114 @@ android_builder(
), ),
) )
android_builder( try_.chromium_android_builder(
name = 'android_cronet', name = 'android_cronet',
tryjob = tryjob(), tryjob = try_.job(),
) )
android_builder( try_.chromium_android_builder(
name = 'android_cronet_tester', name = 'android_cronet_tester',
properties = { properties = {
'buildername': 'android-cronet-arm-dbg', 'buildername': 'android-cronet-arm-dbg',
}, },
) )
android_builder( try_.chromium_android_builder(
name = 'android_mojo', name = 'android_mojo',
) )
android_builder( try_.chromium_android_builder(
name = 'android_n5x_swarming_dbg', name = 'android_n5x_swarming_dbg',
) )
android_builder( try_.chromium_android_builder(
name = 'android_unswarmed_pixel_aosp', name = 'android_unswarmed_pixel_aosp',
) )
android_builder( try_.chromium_android_builder(
name = 'cast_shell_android', name = 'cast_shell_android',
tryjob = tryjob(), tryjob = try_.job(),
) )
android_builder( try_.chromium_android_builder(
name = 'linux_android_dbg_ng', name = 'linux_android_dbg_ng',
) )
android_builder( try_.chromium_android_builder(
name = 'try-nougat-phone-tester', name = 'try-nougat-phone-tester',
) )
def angle_builder(*, name, **kwargs): try_.chromium_angle_builder(
return try_builder(
name = name,
builderless = False,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.angle',
service_account = 'chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com',
**kwargs
)
angle_builder(
name = 'android_angle_deqp_rel_ng', name = 'android_angle_deqp_rel_ng',
) )
angle_builder( try_.chromium_angle_builder(
name = 'android_angle_rel_ng', name = 'android_angle_rel_ng',
) )
angle_builder( try_.chromium_angle_builder(
name = 'android_angle_vk32_deqp_rel_ng', name = 'android_angle_vk32_deqp_rel_ng',
) )
angle_builder( try_.chromium_angle_builder(
name = 'android_angle_vk32_rel_ng', name = 'android_angle_vk32_rel_ng',
) )
angle_builder( try_.chromium_angle_builder(
name = 'android_angle_vk64_deqp_rel_ng', name = 'android_angle_vk64_deqp_rel_ng',
) )
angle_builder( try_.chromium_angle_builder(
name = 'android_angle_vk64_rel_ng', name = 'android_angle_vk64_rel_ng',
) )
angle_builder( try_.chromium_angle_builder(
name = 'fuchsia-angle-rel', name = 'fuchsia-angle-rel',
) )
angle_builder( try_.chromium_angle_builder(
name = 'linux-angle-rel', name = 'linux-angle-rel',
) )
angle_builder( try_.chromium_angle_builder(
name = 'linux_angle_deqp_rel_ng', name = 'linux_angle_deqp_rel_ng',
) )
angle_builder( try_.chromium_angle_builder(
name = 'linux_angle_ozone_rel_ng', name = 'linux_angle_ozone_rel_ng',
) )
angle_builder( try_.chromium_angle_builder(
name = 'mac-angle-rel', name = 'mac-angle-rel',
cores = None, cores = None,
os = os.MAC_ANY, os = os.MAC_ANY,
) )
angle_builder( try_.chromium_angle_builder(
name = 'win-angle-deqp-rel-32', name = 'win-angle-deqp-rel-32',
os = os.WINDOWS_ANY, os = os.WINDOWS_ANY,
) )
angle_builder( try_.chromium_angle_builder(
name = 'win-angle-deqp-rel-64', name = 'win-angle-deqp-rel-64',
os = os.WINDOWS_ANY, os = os.WINDOWS_ANY,
) )
angle_builder( try_.chromium_angle_builder(
name = 'win-angle-rel-32', name = 'win-angle-rel-32',
os = os.WINDOWS_ANY, os = os.WINDOWS_ANY,
) )
angle_builder( try_.chromium_angle_builder(
name = 'win-angle-rel-64', name = 'win-angle-rel-64',
os = os.WINDOWS_ANY, os = os.WINDOWS_ANY,
) )
def blink_builder(*, name, goma_backend = None, **kwargs): try_.chromium_chromiumos_builder(
return try_builder(
name = name,
goma_backend = goma_backend,
mastername = 'tryserver.blink',
**kwargs
)
blink_builder(
name = 'linux-blink-rel',
goma_backend = goma.backend.RBE_PROD,
tryjob = tryjob(
location_regexp = [
'.+/[+]/cc/.+',
'.+/[+]/third_party/blink/renderer/core/paint/.+',
'.+/[+]/third_party/blink/renderer/core/svg/.+',
'.+/[+]/third_party/blink/renderer/platform/graphics/.+',
],
),
)
blink_builder(
name = 'win10-blink-rel',
goma_backend = goma.backend.RBE_PROD,
os = os.WINDOWS_ANY,
builderless = True,
)
blink_builder(
name = 'win7-blink-rel',
goma_backend = goma.backend.RBE_PROD,
os = os.WINDOWS_ANY,
builderless = True,
)
def blink_mac_builder(*, name, **kwargs):
return blink_builder(
name = name,
cores = None,
goma_backend = goma.backend.RBE_PROD,
os = os.MAC_ANY,
builderless = True,
ssd = True,
**kwargs
)
blink_mac_builder(
name = 'mac10.10-blink-rel',
)
blink_mac_builder(
name = 'mac10.11-blink-rel',
)
blink_mac_builder(
name = 'mac10.12-blink-rel',
)
blink_mac_builder(
name = 'mac10.13-blink-rel',
)
blink_mac_builder(
name = 'mac10.13_retina-blink-rel',
)
blink_mac_builder(
name = 'mac10.14-blink-rel',
)
# Used for listing chrome trybots in chromium's commit-queue.cfg without also
# adding them to chromium's cr-buildbucket.cfg. Note that the recipe these
# builders run allow only known roller accounts when triggered via the CQ.
def chrome_internal_verifier(
*,
builder):
luci.cq_tryjob_verifier(
builder = 'chrome:try/' + builder,
cq_group = 'cq',
includable_only = True,
)
chrome_internal_verifier(
builder = 'chromeos-betty-chrome',
)
chrome_internal_verifier(
builder = 'chromeos-betty-pi-arc-chrome',
)
chrome_internal_verifier(
builder = 'chromeos-eve-compile-chrome',
)
chrome_internal_verifier(
builder = 'chromeos-kevin-compile-chrome',
)
chrome_internal_verifier(
builder = 'linux-chromeos-chrome',
)
def chromiumos_builder(*, name, **kwargs):
return try_builder(
name = name,
mastername = 'tryserver.chromium.chromiumos',
goma_backend = goma.backend.RBE_PROD,
**kwargs
)
chromiumos_builder(
name = 'chromeos-amd64-generic-dbg', name = 'chromeos-amd64-generic-dbg',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/content/gpu/.+', '.+/[+]/content/gpu/.+',
'.+/[+]/media/.+', '.+/[+]/media/.+',
...@@ -514,31 +388,31 @@ chromiumos_builder( ...@@ -514,31 +388,31 @@ chromiumos_builder(
), ),
) )
chromiumos_builder( try_.chromium_chromiumos_builder(
name = 'chromeos-amd64-generic-cfi-thin-lto-rel', name = 'chromeos-amd64-generic-cfi-thin-lto-rel',
) )
chromiumos_builder( try_.chromium_chromiumos_builder(
name = 'chromeos-arm-generic-dbg', name = 'chromeos-arm-generic-dbg',
) )
chromiumos_builder( try_.chromium_chromiumos_builder(
name = 'chromeos-arm-generic-rel', name = 'chromeos-arm-generic-rel',
tryjob = tryjob(), tryjob = try_.job(),
) )
chromiumos_builder( try_.chromium_chromiumos_builder(
name = 'chromeos-kevin-compile-rel', name = 'chromeos-kevin-compile-rel',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/chromeos/CHROMEOS_LKGM', '.+/[+]/chromeos/CHROMEOS_LKGM',
], ],
), ),
) )
chromiumos_builder( try_.chromium_chromiumos_builder(
name = 'chromeos-kevin-rel', name = 'chromeos-kevin-rel',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/build/chromeos/.+', '.+/[+]/build/chromeos/.+',
'.+/[+]/build/config/chromeos/.*', '.+/[+]/build/config/chromeos/.*',
...@@ -546,30 +420,19 @@ chromiumos_builder( ...@@ -546,30 +420,19 @@ chromiumos_builder(
), ),
) )
chromiumos_builder( try_.chromium_chromiumos_builder(
name = 'linux-chromeos-compile-dbg', name = 'linux-chromeos-compile-dbg',
tryjob = tryjob(), tryjob = try_.job(),
) )
chromiumos_builder( try_.chromium_chromiumos_builder(
name = 'linux-chromeos-dbg', name = 'linux-chromeos-dbg',
) )
def dawn_builder(*, name, **kwargs): try_.chromium_dawn_builder(
return try_builder(
name = name,
builderless = False,
cores = None,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.dawn',
service_account = 'chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com',
**kwargs
)
dawn_builder(
name = 'dawn-linux-x64-deps-rel', name = 'dawn-linux-x64-deps-rel',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/gpu/.+', '.+/[+]/gpu/.+',
'.+/[+]/testing/buildbot/chromium.dawn.json', '.+/[+]/testing/buildbot/chromium.dawn.json',
...@@ -582,10 +445,10 @@ dawn_builder( ...@@ -582,10 +445,10 @@ dawn_builder(
), ),
) )
dawn_builder( try_.chromium_dawn_builder(
name = 'dawn-mac-x64-deps-rel', name = 'dawn-mac-x64-deps-rel',
os = os.MAC_ANY, os = os.MAC_ANY,
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/gpu/.+', '.+/[+]/gpu/.+',
'.+/[+]/testing/buildbot/chromium.dawn.json', '.+/[+]/testing/buildbot/chromium.dawn.json',
...@@ -598,10 +461,10 @@ dawn_builder( ...@@ -598,10 +461,10 @@ dawn_builder(
), ),
) )
dawn_builder( try_.chromium_dawn_builder(
name = 'dawn-win10-x64-deps-rel', name = 'dawn-win10-x64-deps-rel',
os = os.WINDOWS_ANY, os = os.WINDOWS_ANY,
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/gpu/.+', '.+/[+]/gpu/.+',
'.+/[+]/testing/buildbot/chromium.dawn.json', '.+/[+]/testing/buildbot/chromium.dawn.json',
...@@ -614,10 +477,10 @@ dawn_builder( ...@@ -614,10 +477,10 @@ dawn_builder(
), ),
) )
dawn_builder( try_.chromium_dawn_builder(
name = 'dawn-win10-x86-deps-rel', name = 'dawn-win10-x86-deps-rel',
os = os.WINDOWS_ANY, os = os.WINDOWS_ANY,
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/gpu/.+', '.+/[+]/gpu/.+',
'.+/[+]/testing/buildbot/chromium.dawn.json', '.+/[+]/testing/buildbot/chromium.dawn.json',
...@@ -630,347 +493,206 @@ dawn_builder( ...@@ -630,347 +493,206 @@ dawn_builder(
), ),
) )
dawn_builder( try_.chromium_dawn_builder(
name = 'linux-dawn-rel', name = 'linux-dawn-rel',
) )
dawn_builder( try_.chromium_dawn_builder(
name = 'mac-dawn-rel', name = 'mac-dawn-rel',
os = os.MAC_ANY, os = os.MAC_ANY,
) )
dawn_builder( try_.chromium_dawn_builder(
name = 'win-dawn-rel', name = 'win-dawn-rel',
os = os.WINDOWS_ANY, os = os.WINDOWS_ANY,
) )
def gpu_builder(*, name, builderless=False, execution_timeout=6 * time.hour, **kwargs): try_.chromium_linux_builder(
return try_builder(
name = name,
builderless = builderless,
execution_timeout = execution_timeout,
service_account = 'chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com',
**kwargs
)
def gpu_android_builder(*, name, **kwargs):
return gpu_builder(
name = name,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.android',
**kwargs
)
gpu_android_builder(
name = 'android_optional_gpu_tests_rel',
tryjob = tryjob(
location_regexp = [
'.+/[+]/cc/.+',
'.+/[+]/chrome/browser/vr/.+',
'.+/[+]/components/viz/.+',
'.+/[+]/content/test/gpu/.+',
'.+/[+]/gpu/.+',
'.+/[+]/media/audio/.+',
'.+/[+]/media/filters/.+',
'.+/[+]/media/gpu/.+',
'.+/[+]/services/viz/.+',
'.+/[+]/testing/trigger_scripts/.+',
'.+/[+]/third_party/blink/renderer/modules/webgl/.+',
'.+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+',
'.+/[+]/ui/gl/.+',
],
),
)
def gpu_linux_builder(*, name, **kwargs):
return gpu_builder(
name = name,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.linux',
**kwargs
)
gpu_linux_builder(
name = 'linux_optional_gpu_tests_rel',
tryjob = tryjob(
location_regexp = [
'.+/[+]/chrome/browser/vr/.+',
'.+/[+]/content/test/gpu/.+',
'.+/[+]/gpu/.+',
'.+/[+]/media/audio/.+',
'.+/[+]/media/filters/.+',
'.+/[+]/media/gpu/.+',
'.+/[+]/testing/buildbot/chromium.gpu.fyi.json',
'.+/[+]/testing/trigger_scripts/.+',
'.+/[+]/third_party/blink/renderer/modules/webgl/.+',
'.+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+',
'.+/[+]/ui/gl/.+',
],
),
)
def gpu_mac_builder(*, name, **kwargs):
return gpu_builder(
name = name,
cores = None,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.mac',
os = os.MAC_ANY,
**kwargs
)
gpu_mac_builder(
name = 'mac_optional_gpu_tests_rel',
tryjob = tryjob(
location_regexp = [
'.+/[+]/chrome/browser/vr/.+',
'.+/[+]/content/test/gpu/.+',
'.+/[+]/gpu/.+',
'.+/[+]/media/audio/.+',
'.+/[+]/media/filters/.+',
'.+/[+]/media/gpu/.+',
'.+/[+]/services/shape_detection/.+',
'.+/[+]/testing/buildbot/chromium.gpu.fyi.json',
'.+/[+]/testing/trigger_scripts/.+',
'.+/[+]/third_party/blink/renderer/modules/webgl/.+',
'.+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+',
'.+/[+]/ui/gl/.+',
],
),
)
def gpu_win_builder(*, name, os=os.WINDOWS_ANY, **kwargs):
return gpu_builder(
name = name,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.win',
os = os,
**kwargs
)
gpu_win_builder(
name = 'win_optional_gpu_tests_rel',
builderless = True,
os = os.WINDOWS_DEFAULT,
tryjob = tryjob(
location_regexp = [
'.+/[+]/chrome/browser/vr/.+',
'.+/[+]/content/test/gpu/.+',
'.+/[+]/device/vr/.+',
'.+/[+]/gpu/.+',
'.+/[+]/media/audio/.+',
'.+/[+]/media/filters/.+',
'.+/[+]/media/gpu/.+',
'.+/[+]/testing/buildbot/chromium.gpu.fyi.json',
'.+/[+]/testing/trigger_scripts/.+',
'.+/[+]/third_party/blink/renderer/modules/vr/.+',
'.+/[+]/third_party/blink/renderer/modules/webgl/.+',
'.+/[+]/third_party/blink/renderer/modules/xr/.+',
'.+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+',
'.+/[+]/ui/gl/.+',
],
),
)
def linux_builder(*, name, goma_backend = goma.backend.RBE_PROD, **kwargs):
return try_builder(
name = name,
goma_backend = goma_backend,
mastername = 'tryserver.chromium.linux',
**kwargs
)
linux_builder(
name = 'cast_shell_audio_linux', name = 'cast_shell_audio_linux',
) )
linux_builder( try_.chromium_linux_builder(
name = 'cast_shell_linux', name = 'cast_shell_linux',
tryjob = tryjob(), tryjob = try_.job(),
) )
linux_builder( try_.chromium_linux_builder(
name = 'closure_compilation', name = 'closure_compilation',
executable = 'recipe:closure_compilation', executable = 'recipe:closure_compilation',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/third_party/closure_compiler/.+', '.+/[+]/third_party/closure_compiler/.+',
], ],
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'fuchsia-arm64-cast', name = 'fuchsia-arm64-cast',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/chromecast/.+', '.+/[+]/chromecast/.+',
], ],
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'fuchsia-compile-x64-dbg', name = 'fuchsia-compile-x64-dbg',
tryjob = tryjob( tryjob = try_.job(
experiment_percentage = 50, experiment_percentage = 50,
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'fuchsia-fyi-arm64-rel', name = 'fuchsia-fyi-arm64-rel',
) )
linux_builder( try_.chromium_linux_builder(
name = 'fuchsia-fyi-x64-dbg', name = 'fuchsia-fyi-x64-dbg',
) )
linux_builder( try_.chromium_linux_builder(
name = 'fuchsia-fyi-x64-rel', name = 'fuchsia-fyi-x64-rel',
) )
linux_builder( try_.chromium_linux_builder(
name = 'fuchsia-x64-cast', name = 'fuchsia-x64-cast',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/chromecast/.+', '.+/[+]/chromecast/.+',
], ],
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'fuchsia_arm64', name = 'fuchsia_arm64',
tryjob = tryjob(), tryjob = try_.job(),
) )
linux_builder( try_.chromium_linux_builder(
name = 'fuchsia_x64', name = 'fuchsia_x64',
tryjob = tryjob(), tryjob = try_.job(),
) )
linux_builder( try_.chromium_linux_builder(
name = 'layout_test_leak_detection', name = 'layout_test_leak_detection',
) )
linux_builder( try_.chromium_linux_builder(
name = 'leak_detection_linux', name = 'leak_detection_linux',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-annotator-rel', name = 'linux-annotator-rel',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-bfcache-debug', name = 'linux-bfcache-debug',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-blink-heap-concurrent-marking-tsan-rel', name = 'linux-blink-heap-concurrent-marking-tsan-rel',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-blink-heap-verification-try', name = 'linux-blink-heap-verification-try',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-clang-tidy-dbg', name = 'linux-clang-tidy-dbg',
executable = 'recipe:tricium_clang_tidy_wrapper', executable = 'recipe:tricium_clang_tidy_wrapper',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-clang-tidy-rel', name = 'linux-clang-tidy-rel',
executable = 'recipe:tricium_clang_tidy_wrapper', executable = 'recipe:tricium_clang_tidy_wrapper',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-dcheck-off-rel', name = 'linux-dcheck-off-rel',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-gcc-rel', name = 'linux-gcc-rel',
goma_backend = None, goma_backend = None,
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-libfuzzer-asan-rel', name = 'linux-libfuzzer-asan-rel',
executable = 'recipe:chromium_libfuzzer_trybot', executable = 'recipe:chromium_libfuzzer_trybot',
tryjob = tryjob(), tryjob = try_.job(),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-ozone-rel', name = 'linux-ozone-rel',
tryjob = tryjob(), tryjob = try_.job(),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-trusty-rel', name = 'linux-trusty-rel',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
os = os.LINUX_TRUSTY, os = os.LINUX_TRUSTY,
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-viz-rel', name = 'linux-viz-rel',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-webkit-msan-rel', name = 'linux-webkit-msan-rel',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_arm', name = 'linux_arm',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_analysis', name = 'linux_chromium_analysis',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_archive_rel_ng', name = 'linux_chromium_archive_rel_ng',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_asan_rel_ng', name = 'linux_chromium_asan_rel_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
ssd = True, ssd = True,
tryjob = tryjob(), tryjob = try_.job(),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_cfi_rel_ng', name = 'linux_chromium_cfi_rel_ng',
cores = 32, cores = 32,
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_chromeos_asan_rel_ng', name = 'linux_chromium_chromeos_asan_rel_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_chromeos_msan_rel_ng', name = 'linux_chromium_chromeos_msan_rel_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_clobber_deterministic', name = 'linux_chromium_clobber_deterministic',
executable = 'recipe:swarming/deterministic_build', executable = 'recipe:swarming/deterministic_build',
execution_timeout = 6 * time.hour, execution_timeout = 6 * time.hour,
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_clobber_rel_ng', name = 'linux_chromium_clobber_rel_ng',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_compile_dbg_32_ng', name = 'linux_chromium_compile_dbg_32_ng',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_compile_dbg_ng', name = 'linux_chromium_compile_dbg_ng',
caches = [ caches = [
swarming.cache( swarming.cache(
...@@ -979,14 +701,14 @@ linux_builder( ...@@ -979,14 +701,14 @@ linux_builder(
), ),
], ],
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_compile_rel_ng', name = 'linux_chromium_compile_rel_ng',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_dbg_ng', name = 'linux_chromium_dbg_ng',
caches = [ caches = [
swarming.cache( swarming.cache(
...@@ -994,31 +716,31 @@ linux_builder( ...@@ -994,31 +716,31 @@ linux_builder(
path = 'linux_debug', path = 'linux_debug',
), ),
], ],
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/build/.*check_gn_headers.*', '.+/[+]/build/.*check_gn_headers.*',
], ],
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_msan_rel_ng', name = 'linux_chromium_msan_rel_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_tsan_rel_ng', name = 'linux_chromium_tsan_rel_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_chromium_ubsan_rel_ng', name = 'linux_chromium_ubsan_rel_ng',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_layout_tests_composite_after_paint', name = 'linux_layout_tests_composite_after_paint',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/third_party/blink/renderer/core/paint/.+', '.+/[+]/third_party/blink/renderer/core/paint/.+',
'.+/[+]/third_party/blink/renderer/core/svg/.+', '.+/[+]/third_party/blink/renderer/core/svg/.+',
...@@ -1029,9 +751,9 @@ linux_builder( ...@@ -1029,9 +751,9 @@ linux_builder(
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_layout_tests_layout_ng_disabled', name = 'linux_layout_tests_layout_ng_disabled',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/third_party/blink/renderer/core/editing/.+', '.+/[+]/third_party/blink/renderer/core/editing/.+',
'.+/[+]/third_party/blink/renderer/core/layout/.+', '.+/[+]/third_party/blink/renderer/core/layout/.+',
...@@ -1045,23 +767,23 @@ linux_builder( ...@@ -1045,23 +767,23 @@ linux_builder(
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-layout-tests-fragment-item', name = 'linux-layout-tests-fragment-item',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-layout-tests-fragment-paint', name = 'linux-layout-tests-fragment-paint',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_mojo', name = 'linux_mojo',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_mojo_chromeos', name = 'linux_mojo_chromeos',
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_upload_clang', name = 'linux_upload_clang',
builderless = True, builderless = True,
cores = 32, cores = 32,
...@@ -1070,45 +792,26 @@ linux_builder( ...@@ -1070,45 +792,26 @@ linux_builder(
os = os.LINUX_TRUSTY, os = os.LINUX_TRUSTY,
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux_vr', name = 'linux_vr',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/chrome/browser/vr/.+', '.+/[+]/chrome/browser/vr/.+',
], ],
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-wpt-fyi-rel', name = 'linux-wpt-fyi-rel',
) )
linux_builder( try_.chromium_linux_builder(
name = 'tricium-metrics-analysis', name = 'tricium-metrics-analysis',
executable = 'recipe:tricium_metrics', executable = 'recipe:tricium_metrics',
) )
def mac_builder( try_.chromium_mac_builder(
*,
name,
builderless=True,
cores=None,
goma_backend=goma.backend.RBE_PROD,
os=os.MAC_ANY,
**kwargs):
return try_builder(
name = name,
cores = cores,
goma_backend = goma_backend,
mastername = 'tryserver.chromium.mac',
os = os,
builderless = builderless,
ssd = True,
**kwargs
)
mac_builder(
name = 'mac-osxbeta-rel', name = 'mac-osxbeta-rel',
os = os.MAC_DEFAULT, os = os.MAC_DEFAULT,
) )
...@@ -1116,47 +819,47 @@ mac_builder( ...@@ -1116,47 +819,47 @@ mac_builder(
# NOTE: the following 4 trybots aren't sensitive to Mac version on which # NOTE: the following 4 trybots aren't sensitive to Mac version on which
# they are built, hence no additional dimension is specified. # they are built, hence no additional dimension is specified.
# The 10.xx version translates to which bots will run isolated tests. # The 10.xx version translates to which bots will run isolated tests.
mac_builder( try_.chromium_mac_builder(
name = 'mac_chromium_10.10', name = 'mac_chromium_10.10',
) )
mac_builder( try_.chromium_mac_builder(
name = 'mac_chromium_10.12_rel_ng', name = 'mac_chromium_10.12_rel_ng',
) )
mac_builder( try_.chromium_mac_builder(
name = 'mac_chromium_10.13_rel_ng', name = 'mac_chromium_10.13_rel_ng',
) )
mac_builder( try_.chromium_mac_builder(
name = 'mac_chromium_10.14_rel_ng', name = 'mac_chromium_10.14_rel_ng',
) )
mac_builder( try_.chromium_mac_builder(
name = 'mac_chromium_archive_rel_ng', name = 'mac_chromium_archive_rel_ng',
) )
mac_builder( try_.chromium_mac_builder(
name = 'mac_chromium_asan_rel_ng', name = 'mac_chromium_asan_rel_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
) )
mac_builder( try_.chromium_mac_builder(
name = 'mac_chromium_compile_dbg_ng', name = 'mac_chromium_compile_dbg_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
os = os.MAC_10_13, os = os.MAC_10_13,
tryjob = tryjob(), tryjob = try_.job(),
) )
mac_builder( try_.chromium_mac_builder(
name = 'mac_chromium_compile_rel_ng', name = 'mac_chromium_compile_rel_ng',
) )
mac_builder( try_.chromium_mac_builder(
name = 'mac_chromium_dbg_ng', name = 'mac_chromium_dbg_ng',
) )
mac_builder( try_.chromium_mac_builder(
name = 'mac_upload_clang', name = 'mac_upload_clang',
builderless = False, builderless = False,
caches = [ caches = [
...@@ -1176,31 +879,15 @@ mac_builder( ...@@ -1176,31 +879,15 @@ mac_builder(
) )
def mac_ios_builder(*, name, executable='recipe:ios/try', **kwargs): try_.chromium_mac_ios_builder(
return try_builder(
name = name,
caches = [
swarming.cache(
name = 'xcode_ios_11a1027',
path = 'xcode_ios_11a1027.app',
),
],
cores = None,
executable = executable,
mastername = 'tryserver.chromium.mac',
os = os.MAC_ANY,
**kwargs
)
mac_ios_builder(
name = 'ios-device', name = 'ios-device',
) )
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios-device-xcode-clang', name = 'ios-device-xcode-clang',
) )
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios-simulator-cr-recipe', name = 'ios-simulator-cr-recipe',
executable = 'recipe:chromium_trybot', executable = 'recipe:chromium_trybot',
properties = { properties = {
...@@ -1208,9 +895,9 @@ mac_ios_builder( ...@@ -1208,9 +895,9 @@ mac_ios_builder(
}, },
) )
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios-simulator-cronet', name = 'ios-simulator-cronet',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/components/cronet/.+', '.+/[+]/components/cronet/.+',
'.+/[+]/components/grpc_support/.+', '.+/[+]/components/grpc_support/.+',
...@@ -1222,138 +909,97 @@ mac_ios_builder( ...@@ -1222,138 +909,97 @@ mac_ios_builder(
), ),
) )
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios-simulator-eg', name = 'ios-simulator-eg',
) )
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios-simulator-noncq', name = 'ios-simulator-noncq',
) )
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios-simulator-full-configs', name = 'ios-simulator-full-configs',
tryjob = tryjob( tryjob = try_.job(
location_regexp = [ location_regexp = [
'.+/[+]/ios/.+', '.+/[+]/ios/.+',
], ],
), ),
) )
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios-simulator-xcode-clang', name = 'ios-simulator-xcode-clang',
) )
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios13-beta-simulator', name = 'ios13-beta-simulator',
) )
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios13-sdk-simulator', name = 'ios13-sdk-simulator',
) )
def swangle_builder(*, name, **kwargs):
return try_builder(
name = name,
builderless = True,
mastername = 'tryserver.chromium.swangle',
service_account = 'chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com',
**kwargs
)
def swangle_linux_builder(*, name, **kwargs):
return swangle_builder(
name = name,
goma_backend = goma.backend.RBE_PROD,
os = os.LINUX_DEFAULT,
**kwargs
)
swangle_linux_builder( try_.chromium_swangle_linux_builder(
name = 'linux-swangle-try-tot-angle-x64' name = 'linux-swangle-try-tot-angle-x64'
) )
swangle_linux_builder( try_.chromium_swangle_linux_builder(
name = 'linux-swangle-try-tot-angle-x86' name = 'linux-swangle-try-tot-angle-x86'
) )
swangle_linux_builder( try_.chromium_swangle_linux_builder(
name = 'linux-swangle-try-tot-swiftshader-x64' name = 'linux-swangle-try-tot-swiftshader-x64'
) )
swangle_linux_builder( try_.chromium_swangle_linux_builder(
name = 'linux-swangle-try-tot-swiftshader-x86' name = 'linux-swangle-try-tot-swiftshader-x86'
) )
swangle_linux_builder( try_.chromium_swangle_linux_builder(
name = 'linux-swangle-try-x64' name = 'linux-swangle-try-x64'
) )
swangle_linux_builder( try_.chromium_swangle_linux_builder(
name = 'linux-swangle-try-x86' name = 'linux-swangle-try-x86'
) )
def swangle_windows_builder(*, name, **kwargs): try_.chromium_swangle_windows_builder(
return swangle_builder(
name = name,
os = os.WINDOWS_DEFAULT,
goma_backend = goma.backend.RBE_PROD,
**kwargs
)
swangle_windows_builder(
name = 'win-swangle-try-tot-angle-x64', name = 'win-swangle-try-tot-angle-x64',
) )
swangle_windows_builder( try_.chromium_swangle_windows_builder(
name = 'win-swangle-try-tot-angle-x86', name = 'win-swangle-try-tot-angle-x86',
) )
swangle_windows_builder( try_.chromium_swangle_windows_builder(
name = 'win-swangle-try-tot-swiftshader-x64', name = 'win-swangle-try-tot-swiftshader-x64',
) )
swangle_windows_builder( try_.chromium_swangle_windows_builder(
name = 'win-swangle-try-tot-swiftshader-x86', name = 'win-swangle-try-tot-swiftshader-x86',
) )
swangle_windows_builder( try_.chromium_swangle_windows_builder(
name = 'win-swangle-try-x64', name = 'win-swangle-try-x64',
) )
swangle_windows_builder( try_.chromium_swangle_windows_builder(
name = 'win-swangle-try-x86', name = 'win-swangle-try-x86',
) )
def win_builder( try_.chromium_win_builder(
*,
name,
builderless=True,
goma_backend=goma.backend.RBE_PROD,
os=os.WINDOWS_DEFAULT,
**kwargs):
return try_builder(
name = name,
builderless = builderless,
goma_backend = goma_backend,
mastername = 'tryserver.chromium.win',
os = os,
**kwargs
)
win_builder(
name = 'win-annotator-rel', name = 'win-annotator-rel',
) )
win_builder( try_.chromium_win_builder(
name = 'win-asan', name = 'win-asan',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
) )
win_builder( try_.chromium_win_builder(
name = 'win-celab-try-rel', name = 'win-celab-try-rel',
executable = 'recipe:celab', executable = 'recipe:celab',
properties = { properties = {
...@@ -1364,68 +1010,68 @@ win_builder( ...@@ -1364,68 +1010,68 @@ win_builder(
}, },
) )
win_builder( try_.chromium_win_builder(
name = 'win-libfuzzer-asan-rel', name = 'win-libfuzzer-asan-rel',
builderless = False, builderless = False,
executable = 'recipe:chromium_libfuzzer_trybot', executable = 'recipe:chromium_libfuzzer_trybot',
os = os.WINDOWS_ANY, os = os.WINDOWS_ANY,
tryjob = tryjob(), tryjob = try_.job(),
) )
win_builder( try_.chromium_win_builder(
name = 'win10_chromium_x64_dbg_ng', name = 'win10_chromium_x64_dbg_ng',
os = os.WINDOWS_10, os = os.WINDOWS_10,
) )
win_builder( try_.chromium_win_builder(
name = 'win10_chromium_x64_coverage_rel_ng', name = 'win10_chromium_x64_coverage_rel_ng',
os = os.WINDOWS_10, os = os.WINDOWS_10,
use_clang_coverage = True, use_clang_coverage = True,
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
ssd = True, ssd = True,
tryjob = tryjob(experiment_percentage = 3), tryjob = try_.job(experiment_percentage = 3),
) )
win_builder( try_.chromium_win_builder(
name = 'win10_chromium_x64_rel_ng_exp', name = 'win10_chromium_x64_rel_ng_exp',
builderless = False, builderless = False,
os = os.WINDOWS_ANY, os = os.WINDOWS_ANY,
) )
win_builder( try_.chromium_win_builder(
name = 'win7-rel', name = 'win7-rel',
execution_timeout = time.hour * 9 / 2, # 4.5 (can't multiply float * duration) execution_timeout = time.hour * 9 / 2, # 4.5 (can't multiply float * duration)
goma_jobs = goma.jobs.J300, goma_jobs = goma.jobs.J300,
ssd = True, ssd = True,
) )
win_builder( try_.chromium_win_builder(
name = 'win_archive', name = 'win_archive',
) )
win_builder( try_.chromium_win_builder(
name = 'win_chromium_compile_dbg_ng', name = 'win_chromium_compile_dbg_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
) )
win_builder( try_.chromium_win_builder(
name = 'win_chromium_compile_rel_ng', name = 'win_chromium_compile_rel_ng',
) )
win_builder( try_.chromium_win_builder(
name = 'win_chromium_dbg_ng', name = 'win_chromium_dbg_ng',
) )
win_builder( try_.chromium_win_builder(
name = 'win_chromium_x64_rel_ng', name = 'win_chromium_x64_rel_ng',
) )
win_builder( try_.chromium_win_builder(
name = 'win_mojo', name = 'win_mojo',
) )
win_builder( try_.chromium_win_builder(
name = 'win_upload_clang', name = 'win_upload_clang',
builderless = False, builderless = False,
cores = 32, cores = 32,
...@@ -1434,6 +1080,127 @@ win_builder( ...@@ -1434,6 +1080,127 @@ win_builder(
os = os.WINDOWS_ANY, os = os.WINDOWS_ANY,
) )
win_builder( try_.chromium_win_builder(
name = 'win_x64_archive', name = 'win_x64_archive',
) )
try_.gpu_chromium_android_builder(
name = 'android_optional_gpu_tests_rel',
tryjob = try_.job(
location_regexp = [
'.+/[+]/cc/.+',
'.+/[+]/chrome/browser/vr/.+',
'.+/[+]/components/viz/.+',
'.+/[+]/content/test/gpu/.+',
'.+/[+]/gpu/.+',
'.+/[+]/media/audio/.+',
'.+/[+]/media/filters/.+',
'.+/[+]/media/gpu/.+',
'.+/[+]/services/viz/.+',
'.+/[+]/testing/trigger_scripts/.+',
'.+/[+]/third_party/blink/renderer/modules/webgl/.+',
'.+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+',
'.+/[+]/ui/gl/.+',
],
),
)
try_.gpu_chromium_linux_builder(
name = 'linux_optional_gpu_tests_rel',
tryjob = try_.job(
location_regexp = [
'.+/[+]/chrome/browser/vr/.+',
'.+/[+]/content/test/gpu/.+',
'.+/[+]/gpu/.+',
'.+/[+]/media/audio/.+',
'.+/[+]/media/filters/.+',
'.+/[+]/media/gpu/.+',
'.+/[+]/testing/buildbot/chromium.gpu.fyi.json',
'.+/[+]/testing/trigger_scripts/.+',
'.+/[+]/third_party/blink/renderer/modules/webgl/.+',
'.+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+',
'.+/[+]/ui/gl/.+',
],
),
)
try_.gpu_chromium_mac_builder(
name = 'mac_optional_gpu_tests_rel',
tryjob = try_.job(
location_regexp = [
'.+/[+]/chrome/browser/vr/.+',
'.+/[+]/content/test/gpu/.+',
'.+/[+]/gpu/.+',
'.+/[+]/media/audio/.+',
'.+/[+]/media/filters/.+',
'.+/[+]/media/gpu/.+',
'.+/[+]/services/shape_detection/.+',
'.+/[+]/testing/buildbot/chromium.gpu.fyi.json',
'.+/[+]/testing/trigger_scripts/.+',
'.+/[+]/third_party/blink/renderer/modules/webgl/.+',
'.+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+',
'.+/[+]/ui/gl/.+',
],
),
)
try_.gpu_chromium_win_builder(
name = 'win_optional_gpu_tests_rel',
builderless = True,
os = os.WINDOWS_DEFAULT,
tryjob = try_.job(
location_regexp = [
'.+/[+]/chrome/browser/vr/.+',
'.+/[+]/content/test/gpu/.+',
'.+/[+]/device/vr/.+',
'.+/[+]/gpu/.+',
'.+/[+]/media/audio/.+',
'.+/[+]/media/filters/.+',
'.+/[+]/media/gpu/.+',
'.+/[+]/testing/buildbot/chromium.gpu.fyi.json',
'.+/[+]/testing/trigger_scripts/.+',
'.+/[+]/third_party/blink/renderer/modules/vr/.+',
'.+/[+]/third_party/blink/renderer/modules/webgl/.+',
'.+/[+]/third_party/blink/renderer/modules/xr/.+',
'.+/[+]/third_party/blink/renderer/platform/graphics/gpu/.+',
'.+/[+]/ui/gl/.+',
],
),
)
# Used for listing chrome trybots in chromium's commit-queue.cfg without also
# adding them to chromium's cr-buildbucket.cfg. Note that the recipe these
# builders run allow only known roller accounts when triggered via the CQ.
def chrome_internal_verifier(
*,
builder):
luci.cq_tryjob_verifier(
builder = 'chrome:try/' + builder,
cq_group = 'cq',
includable_only = True,
)
chrome_internal_verifier(
builder = 'chromeos-betty-chrome',
)
chrome_internal_verifier(
builder = 'chromeos-betty-pi-arc-chrome',
)
chrome_internal_verifier(
builder = 'chromeos-eve-compile-chrome',
)
chrome_internal_verifier(
builder = 'chromeos-kevin-compile-chrome',
)
chrome_internal_verifier(
builder = 'linux-chromeos-chrome',
)
"""Library for defining try builders.
The `try_builder` function defined in this module enables defining a builder and
the tryjob verifier for it in the same location. It can also be accessed through
`try_.builder`.
The `tryjob` function specifies the verifier details for a builder. It can also
be accessed through `try_.job`.
The `defaults` struct provides module-level defaults for the arguments to
`try_builder`. The parameters that support module-level defaults have a
corresponding attribute on `defaults` that is a `lucicfg.var` that can be used
to set the default value. Can also be accessed through `try_.defaults`.
"""
load('./builders.star', 'builders')
load('./args.star', 'args')
defaults = args.defaults(
extends=builders.defaults,
cq_group = None,
)
def tryjob(
*,
disable_reuse=None,
experiment_percentage=None,
location_regexp=None,
location_regexp_exclude=None):
"""Specifies the details of a tryjob verifier.
See https://chromium.googlesource.com/infra/luci/luci-go/+/refs/heads/master/lucicfg/doc/README.md#luci.cq_tryjob_verifier
for details on the arguments. The cq_group parameter supports a module-level
default that defaults to None.
Returns:
A struct that can be passed to the `tryjob` argument of `try_.builder` to
enable the builder for CQ.
"""
return struct(
disable_reuse = disable_reuse,
experiment_percentage = experiment_percentage,
location_regexp = location_regexp,
location_regexp_exclude = location_regexp_exclude,
)
def try_builder(*, name, cq_group=args.DEFAULT, tryjob=None, **kwargs):
"""Define a try builder.
Arguments:
* name - name of the builder, will show up in UIs and logs. Required.
* cq_group - The CQ group to add the builder to. If tryjob is None, it will
be added as includable_only.
* tryjob - A struct containing the details of the tryjob verifier for the
builder, obtained by calling the `tryjob` function.
"""
# Define the builder first so that any validation of luci.builder arguments
# (e.g. bucket) occurs before we try to use it
ret = builders.builder(
name = name,
**kwargs
)
bucket = defaults.get_value_from_kwargs('bucket', kwargs)
cq_group = defaults.get_value('cq_group', cq_group)
if tryjob != None:
luci.cq_tryjob_verifier(
builder = '{}/{}'.format(bucket, name),
cq_group = cq_group,
disable_reuse = tryjob.disable_reuse,
experiment_percentage = tryjob.experiment_percentage,
location_regexp = tryjob.location_regexp,
location_regexp_exclude = tryjob.location_regexp_exclude,
)
else:
# Allow CQ to trigger this builder if user opts in via CQ-Include-Trybots.
luci.cq_tryjob_verifier(
builder = '{}/{}'.format(bucket, name),
cq_group = cq_group,
includable_only = True,
)
return ret
def blink_builder(*, name, goma_backend = None, **kwargs):
return try_builder(
name = name,
goma_backend = goma_backend,
mastername = 'tryserver.blink',
**kwargs
)
def blink_mac_builder(*, name, **kwargs):
return blink_builder(
name = name,
cores = None,
goma_backend = builders.goma.backend.RBE_PROD,
os = builders.os.MAC_ANY,
builderless = True,
ssd = True,
**kwargs
)
def chromium_android_builder(*, name, **kwargs):
return try_builder(
name = name,
goma_backend = builders.goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.android',
**kwargs
)
def chromium_angle_builder(*, name, **kwargs):
return try_builder(
name = name,
builderless = False,
goma_backend = builders.goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.angle',
service_account = 'chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com',
**kwargs
)
def chromium_chromiumos_builder(*, name, **kwargs):
return try_builder(
name = name,
mastername = 'tryserver.chromium.chromiumos',
goma_backend = builders.goma.backend.RBE_PROD,
**kwargs
)
def chromium_dawn_builder(*, name, **kwargs):
return try_builder(
name = name,
builderless = False,
cores = None,
goma_backend = builders.goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.dawn',
service_account = 'chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com',
**kwargs
)
def chromium_linux_builder(*, name, goma_backend=builders.goma.backend.RBE_PROD, **kwargs):
return try_builder(
name = name,
goma_backend = goma_backend,
mastername = 'tryserver.chromium.linux',
**kwargs
)
def chromium_mac_builder(
*,
name,
builderless=True,
cores=None,
goma_backend=builders.goma.backend.RBE_PROD,
os=builders.os.MAC_ANY,
**kwargs):
return try_builder(
name = name,
cores = cores,
goma_backend = goma_backend,
mastername = 'tryserver.chromium.mac',
os = os,
builderless = builderless,
ssd = True,
**kwargs
)
def chromium_mac_ios_builder(*, name, executable='recipe:ios/try', **kwargs):
return try_builder(
name = name,
caches = [
swarming.cache(
name = 'xcode_ios_11a1027',
path = 'xcode_ios_11a1027.app',
),
],
cores = None,
executable = executable,
mastername = 'tryserver.chromium.mac',
os = builders.os.MAC_ANY,
**kwargs
)
def chromium_swangle_builder(*, name, **kwargs):
return try_builder(
name = name,
builderless = True,
mastername = 'tryserver.chromium.swangle',
service_account = 'chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com',
**kwargs
)
def chromium_swangle_linux_builder(*, name, **kwargs):
return chromium_swangle_builder(
name = name,
goma_backend = builders.goma.backend.RBE_PROD,
os = builders.os.LINUX_DEFAULT,
**kwargs
)
def chromium_swangle_windows_builder(*, name, **kwargs):
return chromium_swangle_builder(
name = name,
goma_backend = builders.goma.backend.RBE_PROD,
os = builders.os.WINDOWS_DEFAULT,
**kwargs
)
def chromium_win_builder(
*,
name,
builderless=True,
goma_backend=builders.goma.backend.RBE_PROD,
os=builders.os.WINDOWS_DEFAULT,
**kwargs):
return try_builder(
name = name,
builderless = builderless,
goma_backend = goma_backend,
mastername = 'tryserver.chromium.win',
os = os,
**kwargs
)
def gpu_try_builder(*, name, builderless=False, execution_timeout=6 * time.hour, **kwargs):
return try_builder(
name = name,
builderless = builderless,
execution_timeout = execution_timeout,
service_account = 'chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com',
**kwargs
)
def gpu_chromium_android_builder(*, name, **kwargs):
return gpu_try_builder(
name = name,
goma_backend = builders.goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.android',
**kwargs
)
def gpu_chromium_linux_builder(*, name, **kwargs):
return gpu_try_builder(
name = name,
goma_backend = builders.goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.linux',
**kwargs
)
def gpu_chromium_mac_builder(*, name, **kwargs):
return gpu_try_builder(
name = name,
cores = None,
goma_backend = builders.goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.mac',
os = builders.os.MAC_ANY,
**kwargs
)
def gpu_chromium_win_builder(*, name, os=builders.os.WINDOWS_ANY, **kwargs):
return gpu_try_builder(
name = name,
goma_backend = builders.goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.win',
os = os,
**kwargs
)
try_ = struct(
defaults = defaults,
builder = try_builder,
job = tryjob,
blink_builder = blink_builder,
blink_mac_builder = blink_mac_builder,
chromium_android_builder = chromium_android_builder,
chromium_angle_builder = chromium_angle_builder,
chromium_chromiumos_builder = chromium_chromiumos_builder,
chromium_dawn_builder = chromium_dawn_builder,
chromium_linux_builder = chromium_linux_builder,
chromium_mac_builder = chromium_mac_builder,
chromium_mac_ios_builder = chromium_mac_ios_builder,
chromium_swangle_linux_builder = chromium_swangle_linux_builder,
chromium_swangle_windows_builder = chromium_swangle_windows_builder,
chromium_win_builder = chromium_win_builder,
gpu_chromium_android_builder = gpu_chromium_android_builder,
gpu_chromium_linux_builder = gpu_chromium_linux_builder,
gpu_chromium_mac_builder = gpu_chromium_mac_builder,
gpu_chromium_win_builder = gpu_chromium_win_builder,
)
load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os') load('//lib/builders.star', 'cpu', 'goma', 'os')
load('//lib/try.star', 'try_')
load('//versioned/vars/try.star', 'vars') load('//versioned/vars/try.star', 'vars')
# Load this using relative path so that the load statement doesn't # Load this using relative path so that the load statement doesn't
# need to be changed when making a new milestone # need to be changed when making a new milestone
...@@ -53,114 +54,49 @@ luci.cq_group( ...@@ -53,114 +54,49 @@ luci.cq_group(
], ],
) )
defaults.bucket.set(vars.bucket.get()) try_.defaults.bucket.set(vars.bucket.get())
defaults.bucketed_triggers.set(True) try_.defaults.bucketed_triggers.set(True)
try_.defaults.cq_group.set(vars.cq_group.get())
def tryjob( # Builders are sorted first lexicographically by the function used to define
*, # them, then lexicographically by their name
disable_reuse=None,
experiment_percentage=None,
location_regexp=None,
location_regexp_exclude=None):
return struct(
disable_reuse = disable_reuse,
experiment_percentage = experiment_percentage,
location_regexp = location_regexp,
location_regexp_exclude = location_regexp_exclude,
)
def try_builder(
*,
name,
tryjob=None,
**kwargs):
if tryjob != None:
luci.cq_tryjob_verifier(
builder = vars.bucket.builder(name),
cq_group = vars.cq_group.get(),
disable_reuse = tryjob.disable_reuse,
experiment_percentage = tryjob.experiment_percentage,
location_regexp = tryjob.location_regexp,
location_regexp_exclude = tryjob.location_regexp_exclude,
)
else:
# Allow CQ to trigger this builder if user opts in via CQ-Include-Trybots.
luci.cq_tryjob_verifier(
builder = vars.bucket.builder(name),
cq_group = vars.cq_group.get(),
includable_only = True,
)
return builder( try_.chromium_android_builder(
name = name,
**kwargs
)
# Builders appear after the function used to define them, with all builders
# defined using the same function ordered lexicographically by name
# Builder functions are defined in lexicographic order by name ignoring the
# '_builder' suffix
# Builder functions are defined for GPU builders on each master where they
# appear: gpu_XXX_builder where XXX is the part after the last dot in the
# mastername
# Builder functions are defined for each master, with additional functions
# for specializing on OS: XXX_builder and XXX_YYY_builder where XXX is the part
# after the last dot in the mastername and YYY is the OS
def android_builder(*, name, **kwargs):
return try_builder(
name = name,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.android',
**kwargs
)
android_builder(
name = 'android-kitkat-arm-rel', name = 'android-kitkat-arm-rel',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob( tryjob = try_.job(
# TODO(https://crbug.com/1024641) Make non-experimental # TODO(https://crbug.com/1024641) Make non-experimental
experiment_percentage = 1, experiment_percentage = 1,
), ),
) )
android_builder( try_.chromium_android_builder(
name = 'android-marshmallow-arm64-rel', name = 'android-marshmallow-arm64-rel',
cores = 16, cores = 16,
goma_jobs = goma.jobs.J300, goma_jobs = goma.jobs.J300,
ssd = True, ssd = True,
use_java_coverage = True, use_java_coverage = True,
tryjob = tryjob( tryjob = try_.job(
# TODO(https://crbug.com/1024641) Make non-experimental # TODO(https://crbug.com/1024641) Make non-experimental
experiment_percentage = 1, experiment_percentage = 1,
), ),
) )
def chromiumos_builder(*, name, **kwargs): try_.chromium_chromiumos_builder(
return try_builder(
name = name,
mastername = 'tryserver.chromium.chromiumos',
goma_backend = goma.backend.RBE_PROD,
**kwargs
)
chromiumos_builder(
name = 'chromeos-amd64-generic-rel', name = 'chromeos-amd64-generic-rel',
tryjob = tryjob( tryjob = try_.job(
# TODO(https://crbug.com/1024641) Make non-experimental # TODO(https://crbug.com/1024641) Make non-experimental
experiment_percentage = 1, experiment_percentage = 1,
), ),
) )
chromiumos_builder( try_.chromium_chromiumos_builder(
name = 'linux-chromeos-rel', name = 'linux-chromeos-rel',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob( tryjob = try_.job(
# TODO(https://crbug.com/1024641) Make non-experimental # TODO(https://crbug.com/1024641) Make non-experimental
experiment_percentage = 1, experiment_percentage = 1,
), ),
...@@ -168,16 +104,10 @@ chromiumos_builder( ...@@ -168,16 +104,10 @@ chromiumos_builder(
) )
def linux_builder(*, name, **kwargs): try_.chromium_linux_builder(
return try_builder(
name = name,
mastername = 'tryserver.chromium.linux',
**kwargs
)
linux_builder(
name = 'chromium_presubmit', name = 'chromium_presubmit',
executable = 'recipe:presubmit', executable = 'recipe:presubmit',
goma_backend = None,
properties = { properties = {
'$depot_tools/presubmit': { '$depot_tools/presubmit': {
'runhooks': True, 'runhooks': True,
...@@ -185,18 +115,17 @@ linux_builder( ...@@ -185,18 +115,17 @@ linux_builder(
}, },
'repo_name': 'chromium', 'repo_name': 'chromium',
}, },
tryjob = tryjob( tryjob = try_.job(
disable_reuse = True, disable_reuse = True,
# TODO(https://crbug.com/1024637) Make non-experimental # TODO(https://crbug.com/1024637) Make non-experimental
experiment_percentage = 100, experiment_percentage = 100,
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-rel', name = 'linux-rel',
goma_backend = goma.backend.RBE_PROD,
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob( tryjob = try_.job(
# TODO(https://crbug.com/1024637) Make non-experimental # TODO(https://crbug.com/1024637) Make non-experimental
experiment_percentage = 1, experiment_percentage = 1,
), ),
...@@ -204,74 +133,31 @@ linux_builder( ...@@ -204,74 +133,31 @@ linux_builder(
) )
def mac_builder( try_.chromium_mac_builder(
*,
name,
cores=None,
goma_backend = goma.backend.RBE_PROD,
os=os.MAC_ANY,
**kwargs):
return try_builder(
name = name,
cores = cores,
goma_backend = goma_backend,
mastername = 'tryserver.chromium.mac',
os = os,
builderless = True,
ssd = True,
**kwargs
)
mac_builder(
name = 'mac-rel', name = 'mac-rel',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob( tryjob = try_.job(
# TODO(https://crbug.com/1024641) Make non-experimental # TODO(https://crbug.com/1024641) Make non-experimental
experiment_percentage = 1, experiment_percentage = 1,
), ),
) )
def mac_ios_builder(*, name, executable='recipe:ios/try', **kwargs):
return try_builder(
name = name,
caches = [
swarming.cache(
name = 'xcode_ios_11a1027',
path = 'xcode_ios_11a1027.app',
),
],
cores = None,
executable = executable,
mastername = 'tryserver.chromium.mac',
os = os.MAC_ANY,
**kwargs
)
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios-simulator', name = 'ios-simulator',
tryjob = tryjob( tryjob = try_.job(
# TODO(https://crbug.com/1024641) Make non-experimental # TODO(https://crbug.com/1024641) Make non-experimental
experiment_percentage = 1, experiment_percentage = 1,
), ),
) )
def win_builder(*, name, builderless=True, os=os.WINDOWS_DEFAULT, **kwargs): try_.chromium_win_builder(
return try_builder(
name = name,
builderless = builderless,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.win',
os = os,
**kwargs
)
win_builder(
name = 'win10_chromium_x64_rel_ng', name = 'win10_chromium_x64_rel_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
os = os.WINDOWS_10, os = os.WINDOWS_10,
ssd = True, ssd = True,
tryjob = tryjob( tryjob = try_.job(
# TODO(https://crbug.com/1024641) Make non-experimental # TODO(https://crbug.com/1024641) Make non-experimental
experiment_percentage = 1, experiment_percentage = 1,
), ),
......
load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os') load('//lib/builders.star', 'cpu', 'goma', 'os')
load('//lib/try.star', 'try_')
load('//versioned/vars/try.star', 'vars') load('//versioned/vars/try.star', 'vars')
# Load this using relative path so that the load statement doesn't # Load this using relative path so that the load statement doesn't
# need to be changed when making a new milestone # need to be changed when making a new milestone
...@@ -53,119 +54,48 @@ luci.cq_group( ...@@ -53,119 +54,48 @@ luci.cq_group(
], ],
) )
defaults.bucket.set(vars.bucket.get()) try_.defaults.bucket.set(vars.bucket.get())
defaults.bucketed_triggers.set(True) try_.defaults.bucketed_triggers.set(True)
try_.defaults.cq_group.set(vars.cq_group.get())
def tryjob(
*, # Builders are sorted first lexicographically by the function used to define
disable_reuse=None, # them, then lexicographically by their name
experiment_percentage=None,
location_regexp=None,
location_regexp_exclude=None): try_.chromium_android_builder(
return struct(
disable_reuse = disable_reuse,
experiment_percentage = experiment_percentage,
location_regexp = location_regexp,
location_regexp_exclude = location_regexp_exclude,
)
def try_builder(
*,
name,
tryjob=None,
**kwargs):
if tryjob != None:
luci.cq_tryjob_verifier(
builder = vars.bucket.builder(name),
cq_group = vars.cq_group.get(),
disable_reuse = tryjob.disable_reuse,
experiment_percentage = tryjob.experiment_percentage,
location_regexp = tryjob.location_regexp,
location_regexp_exclude = tryjob.location_regexp_exclude,
)
else:
# Allow CQ to trigger this builder if user opts in via CQ-Include-Trybots.
luci.cq_tryjob_verifier(
builder = vars.bucket.builder(name),
cq_group = vars.cq_group.get(),
includable_only = True,
)
return builder(
name = name,
**kwargs
)
# Builders appear after the function used to define them, with all builders
# defined using the same function ordered lexicographically by name
# Builder functions are defined in lexicographic order by name ignoring the
# '_builder' suffix
# Builder functions are defined for GPU builders on each master where they
# appear: gpu_XXX_builder where XXX is the part after the last dot in the
# mastername
# Builder functions are defined for each master, with additional functions
# for specializing on OS: XXX_builder and XXX_YYY_builder where XXX is the part
# after the last dot in the mastername and YYY is the OS
def android_builder(*, name, **kwargs):
return try_builder(
name = name,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.android',
**kwargs
)
android_builder(
name = 'android-kitkat-arm-rel', name = 'android-kitkat-arm-rel',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
) )
android_builder( try_.chromium_android_builder(
name = 'android-marshmallow-arm64-rel', name = 'android-marshmallow-arm64-rel',
cores = 16, cores = 16,
goma_jobs = goma.jobs.J300, goma_jobs = goma.jobs.J300,
ssd = True, ssd = True,
use_java_coverage = True, use_java_coverage = True,
tryjob = tryjob(), tryjob = try_.job(),
) )
def chromiumos_builder(*, name, **kwargs): try_.chromium_chromiumos_builder(
return try_builder(
name = name,
mastername = 'tryserver.chromium.chromiumos',
goma_backend = goma.backend.RBE_PROD,
**kwargs
)
chromiumos_builder(
name = 'chromeos-amd64-generic-rel', name = 'chromeos-amd64-generic-rel',
tryjob = tryjob(), tryjob = try_.job(),
) )
chromiumos_builder( try_.chromium_chromiumos_builder(
name = 'linux-chromeos-rel', name = 'linux-chromeos-rel',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
use_clang_coverage = True, use_clang_coverage = True,
) )
def linux_builder(*, name, **kwargs): try_.chromium_linux_builder(
return try_builder(
name = name,
mastername = 'tryserver.chromium.linux',
**kwargs
)
linux_builder(
name = 'chromium_presubmit', name = 'chromium_presubmit',
executable = 'recipe:presubmit', executable = 'recipe:presubmit',
goma_backend = None,
properties = { properties = {
'$depot_tools/presubmit': { '$depot_tools/presubmit': {
'runhooks': True, 'runhooks': True,
...@@ -173,80 +103,36 @@ linux_builder( ...@@ -173,80 +103,36 @@ linux_builder(
}, },
'repo_name': 'chromium', 'repo_name': 'chromium',
}, },
tryjob = tryjob( tryjob = try_.job(
disable_reuse = True, disable_reuse = True,
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-rel', name = 'linux-rel',
goma_backend = goma.backend.RBE_PROD,
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
use_clang_coverage = True, use_clang_coverage = True,
) )
def mac_builder( try_.chromium_mac_builder(
*,
name,
cores=None,
goma_backend = goma.backend.RBE_PROD,
os=os.MAC_ANY,
**kwargs):
return try_builder(
name = name,
cores = cores,
goma_backend = goma_backend,
mastername = 'tryserver.chromium.mac',
os = os,
builderless = True,
ssd = True,
**kwargs
)
mac_builder(
name = 'mac-rel', name = 'mac-rel',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
) )
def mac_ios_builder(*, name, executable='recipe:ios/try', **kwargs):
return try_builder( try_.chromium_mac_ios_builder(
name = name,
caches = [
swarming.cache(
name = 'xcode_ios_11a1027',
path = 'xcode_ios_11a1027.app',
),
],
cores = None,
executable = executable,
mastername = 'tryserver.chromium.mac',
os = os.MAC_ANY,
**kwargs
)
mac_ios_builder(
name = 'ios-simulator', name = 'ios-simulator',
tryjob = tryjob(), tryjob = try_.job(),
) )
def win_builder(*, name, builderless=True, os=os.WINDOWS_DEFAULT, **kwargs): try_.chromium_win_builder(
return try_builder(
name = name,
builderless = builderless,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.win',
os = os,
**kwargs
)
win_builder(
name = 'win10_chromium_x64_rel_ng', name = 'win10_chromium_x64_rel_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
os = os.WINDOWS_10, os = os.WINDOWS_10,
ssd = True, ssd = True,
tryjob = tryjob(), tryjob = try_.job(),
) )
load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os') load('//lib/builders.star', 'cpu', 'goma', 'os')
load('//lib/try.star', 'try_')
load('//versioned/vars/try.star', 'vars') load('//versioned/vars/try.star', 'vars')
# Load this using relative path so that the load statement doesn't # Load this using relative path so that the load statement doesn't
# need to be changed when making a new milestone # need to be changed when making a new milestone
...@@ -53,120 +54,49 @@ luci.cq_group( ...@@ -53,120 +54,49 @@ luci.cq_group(
], ],
) )
defaults.bucket.set(vars.bucket.get()) try_.defaults.bucket.set(vars.bucket.get())
defaults.bucketed_triggers.set(True) try_.defaults.bucketed_triggers.set(True)
try_.defaults.cq_group.set(vars.cq_group.get())
def tryjob( # Builders are sorted first lexicographically by the function used to define
*, # them, then lexicographically by their name
disable_reuse=None,
experiment_percentage=None,
location_regexp=None,
location_regexp_exclude=None):
return struct(
disable_reuse = disable_reuse,
experiment_percentage = experiment_percentage,
location_regexp = location_regexp,
location_regexp_exclude = location_regexp_exclude,
)
def try_builder(
*,
name,
tryjob=None,
**kwargs):
if tryjob != None:
luci.cq_tryjob_verifier(
builder = vars.bucket.builder(name),
cq_group = vars.cq_group.get(),
disable_reuse = tryjob.disable_reuse,
experiment_percentage = tryjob.experiment_percentage,
location_regexp = tryjob.location_regexp,
location_regexp_exclude = tryjob.location_regexp_exclude,
)
else:
# Allow CQ to trigger this builder if user opts in via CQ-Include-Trybots.
luci.cq_tryjob_verifier(
builder = vars.bucket.builder(name),
cq_group = vars.cq_group.get(),
includable_only = True,
)
return builder( try_.chromium_android_builder(
name = name,
**kwargs
)
# Builders appear after the function used to define them, with all builders
# defined using the same function ordered lexicographically by name
# Builder functions are defined in lexicographic order by name ignoring the
# '_builder' suffix
# Builder functions are defined for GPU builders on each master where they
# appear: gpu_XXX_builder where XXX is the part after the last dot in the
# mastername
# Builder functions are defined for each master, with additional functions
# for specializing on OS: XXX_builder and XXX_YYY_builder where XXX is the part
# after the last dot in the mastername and YYY is the OS
def android_builder(*, name, **kwargs):
return try_builder(
name = name,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.android',
**kwargs
)
android_builder(
name = 'android-kitkat-arm-rel', name = 'android-kitkat-arm-rel',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
should_exonerate_flaky_failures = True, should_exonerate_flaky_failures = True,
) )
android_builder( try_.chromium_android_builder(
name = 'android-marshmallow-arm64-rel', name = 'android-marshmallow-arm64-rel',
cores = 16, cores = 16,
goma_jobs = goma.jobs.J300, goma_jobs = goma.jobs.J300,
ssd = True, ssd = True,
use_java_coverage = True, use_java_coverage = True,
tryjob = tryjob(), tryjob = try_.job(),
) )
def chromiumos_builder(*, name, **kwargs): try_.chromium_chromiumos_builder(
return try_builder(
name = name,
mastername = 'tryserver.chromium.chromiumos',
goma_backend = goma.backend.RBE_PROD,
**kwargs
)
chromiumos_builder(
name = 'chromeos-amd64-generic-rel', name = 'chromeos-amd64-generic-rel',
tryjob = tryjob(), tryjob = try_.job(),
) )
chromiumos_builder( try_.chromium_chromiumos_builder(
name = 'linux-chromeos-rel', name = 'linux-chromeos-rel',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
use_clang_coverage = True, use_clang_coverage = True,
) )
def linux_builder(*, name, **kwargs): try_.chromium_linux_builder(
return try_builder(
name = name,
mastername = 'tryserver.chromium.linux',
**kwargs
)
linux_builder(
name = 'chromium_presubmit', name = 'chromium_presubmit',
executable = 'recipe:presubmit', executable = 'recipe:presubmit',
goma_backend = None,
properties = { properties = {
'$depot_tools/presubmit': { '$depot_tools/presubmit': {
'runhooks': True, 'runhooks': True,
...@@ -174,83 +104,39 @@ linux_builder( ...@@ -174,83 +104,39 @@ linux_builder(
}, },
'repo_name': 'chromium', 'repo_name': 'chromium',
}, },
tryjob = tryjob( tryjob = try_.job(
disable_reuse = True, disable_reuse = True,
), ),
) )
linux_builder( try_.chromium_linux_builder(
name = 'linux-rel', name = 'linux-rel',
goma_backend = goma.backend.RBE_PROD,
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
use_clang_coverage = True, use_clang_coverage = True,
should_exonerate_flaky_failures = True, should_exonerate_flaky_failures = True,
) )
def mac_builder( try_.chromium_mac_builder(
*,
name,
cores=None,
goma_backend = goma.backend.RBE_PROD,
os=os.MAC_ANY,
**kwargs):
return try_builder(
name = name,
cores = cores,
goma_backend = goma_backend,
mastername = 'tryserver.chromium.mac',
os = os,
builderless = True,
ssd = True,
**kwargs
)
mac_builder(
name = 'mac-rel', name = 'mac-rel',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = tryjob(), tryjob = try_.job(),
should_exonerate_flaky_failures = True, should_exonerate_flaky_failures = True,
) )
def mac_ios_builder(*, name, executable='recipe:ios/try', **kwargs):
return try_builder(
name = name,
caches = [
swarming.cache(
name = 'xcode_ios_11a1027',
path = 'xcode_ios_11a1027.app',
),
],
cores = None,
executable = executable,
mastername = 'tryserver.chromium.mac',
os = os.MAC_ANY,
**kwargs
)
mac_ios_builder( try_.chromium_mac_ios_builder(
name = 'ios-simulator', name = 'ios-simulator',
tryjob = tryjob(), tryjob = try_.job(),
) )
def win_builder(*, name, builderless=True, os=os.WINDOWS_DEFAULT, **kwargs): try_.chromium_win_builder(
return try_builder(
name = name,
builderless = builderless,
goma_backend = goma.backend.RBE_PROD,
mastername = 'tryserver.chromium.win',
os = os,
**kwargs
)
win_builder(
name = 'win10_chromium_x64_rel_ng', name = 'win10_chromium_x64_rel_ng',
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
os = os.WINDOWS_10, os = os.WINDOWS_10,
ssd = True, ssd = True,
tryjob = tryjob(), tryjob = try_.job(),
should_exonerate_flaky_failures = True, should_exonerate_flaky_failures = True,
) )
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment