# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
load("@chromium-luci//builder_config.star", "builder_config")
load("@chromium-luci//builders.star", "builder", "cpu", "defaults", "os")
load("@chromium-luci//gn_args.star", "gn_args")
load("@chromium-luci//targets.star", "targets")
load("//lib/siso.star", "siso")
luci.bucket(
name = "webrtc",
constraints = luci.bucket_constraints(
pools = ["luci.chromium.webrtc"],
service_accounts = [
"chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
"webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
],
),
bindings = [
luci.binding(
roles = "role/buildbucket.reader",
groups = "all",
),
luci.binding(
roles = "role/buildbucket.creator",
groups = "project-webrtc-led-users",
),
luci.binding(
roles = "role/buildbucket.triggerer",
groups = [
"project-chromium-ci-schedulers",
"project-webrtc-admins",
],
),
luci.binding(
roles = "role/buildbucket.owner",
groups = "project-chromium-admins",
),
luci.binding(
roles = "role/scheduler.owner",
groups = "project-webrtc-admins",
),
luci.binding(
roles = "role/swarming.poolUser",
groups = "project-webrtc-admins",
),
luci.binding(
roles = "role/swarming.taskTriggerer",
groups = "project-webrtc-admins",
),
],
)
defaults.set(
bucket = "webrtc",
executable = "recipe:chromium",
triggered_by = ["chromium-gitiles-trigger"],
builder_group = "chromium.webrtc",
builderless = None,
os = os.LINUX_DEFAULT,
cpu = cpu.X86_64,
build_numbers = True,
contact_team_email = "webrtc-infra@google.com",
execution_timeout = 3 * time.hour,
experiments = {
"chromium_tests.resultdb_module": 100,
},
properties = {
"perf_dashboard_machine_group": "ChromiumWebRTC",
},
service_account = "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
siso_project = siso.project.DEFAULT_TRUSTED,
siso_remote_jobs = siso.remote_jobs.DEFAULT,
)
targets.builder_defaults.set(
mixins = [
"chromium-tester-service-account",
],
)
# Builders are defined in lexicographic order by name
builder(
name = "WebRTC Chromium Android Builder",
description_html = "Testing WebRTC inside Chromium",
builder_spec = builder_config.builder_spec(
gclient_config = builder_config.gclient_config(
config = "chromium_webrtc",
apply_configs = ["android"],
),
chromium_config = builder_config.chromium_config(
config = "base_config",
apply_configs = [
"dcheck",
"mb",
"android",
],
build_config = builder_config.build_config.RELEASE,
target_arch = builder_config.target_arch.ARM,
target_bits = 64,
target_platform = builder_config.target_platform.ANDROID,
),
android_config = builder_config.android_config(config = "base_config"),
),
gn_args = gn_args.config(
configs = [
"android_builder",
"android_with_static_analysis",
"debug_static_builder",
"remoteexec",
"arm64",
],
),
targets = targets.bundle(),
)
builder(
name = "WebRTC Chromium Android Tester",
description_html = "Testing WebRTC inside Chromium",
parent = "WebRTC Chromium Android Builder",
builder_spec = builder_config.builder_spec(
execution_mode = builder_config.execution_mode.TEST,
gclient_config = builder_config.gclient_config(
config = "chromium_webrtc",
apply_configs = ["android"],
),
chromium_config = builder_config.chromium_config(
config = "base_config",
apply_configs = [
"dcheck",
"mb",
"android",
],
build_config = builder_config.build_config.RELEASE,
target_arch = builder_config.target_arch.ARM,
target_bits = 64,
target_platform = builder_config.target_platform.ANDROID,
),
android_config = builder_config.android_config(config = "base_config"),
),
targets = targets.bundle(
targets = [
"webrtc_chromium_simple_gtests",
],
mixins = [
"panther_on_14",
],
),
targets_settings = targets.settings(
os_type = targets.os_type.ANDROID,
),
)
builder(
name = "WebRTC Chromium Linux Builder",
description_html = "Testing WebRTC inside Chromium",
builder_spec = builder_config.builder_spec(
gclient_config = builder_config.gclient_config(
config = "chromium_webrtc",
apply_configs = ["webrtc_test_resources"],
),
chromium_config = builder_config.chromium_config(
config = "chromium",
apply_configs = [
"dcheck",
"mb",
],
build_config = builder_config.build_config.RELEASE,
target_bits = 64,
target_platform = builder_config.target_platform.LINUX,
),
),
gn_args = gn_args.config(
configs = [
"gpu_tests",
"release_builder",
"remoteexec",
"linux",
"x64",
],
),
targets = targets.bundle(
additional_compile_targets = [
"remoting_unittests",
],
),
)
builder(
name = "WebRTC Chromium Linux Tester",
description_html = "Testing WebRTC inside Chromium",
parent = "WebRTC Chromium Linux Builder",
builder_spec = builder_config.builder_spec(
execution_mode = builder_config.execution_mode.TEST,
gclient_config = builder_config.gclient_config(config = "chromium_webrtc"),
chromium_config = builder_config.chromium_config(
config = "chromium",
apply_configs = [
"dcheck",
"mb",
],
build_config = builder_config.build_config.RELEASE,
target_bits = 64,
target_platform = builder_config.target_platform.LINUX,
),
),
targets = targets.bundle(
targets = [
"webrtc_chromium_gtests",
],
mixins = [
"linux-jammy",
],
),
)
builder(
name = "WebRTC Chromium Mac Builder",
description_html = "Testing WebRTC inside Chromium",
builder_spec = builder_config.builder_spec(
gclient_config = builder_config.gclient_config(
config = "chromium_webrtc",
apply_configs = ["webrtc_test_resources"],
),
chromium_config = builder_config.chromium_config(
config = "chromium",
apply_configs = [
"dcheck",
"mb",
],
build_config = builder_config.build_config.RELEASE,
target_bits = 64,
target_platform = builder_config.target_platform.MAC,
),
),
gn_args = gn_args.config(
configs = [
"gpu_tests",
"release_builder",
"remoteexec",
"mac",
"x64",
],
),
targets = targets.bundle(
additional_compile_targets = [
"remoting_unittests",
],
),
os = os.MAC_ANY,
)
builder(
name = "WebRTC Chromium Mac Tester",
description_html = "Testing WebRTC inside Chromium",
parent = "WebRTC Chromium Mac Builder",
builder_spec = builder_config.builder_spec(
execution_mode = builder_config.execution_mode.TEST,
gclient_config = builder_config.gclient_config(config = "chromium_webrtc"),
chromium_config = builder_config.chromium_config(
config = "chromium",
apply_configs = [
"dcheck",
"mb",
],
build_config = builder_config.build_config.RELEASE,
target_bits = 64,
target_platform = builder_config.target_platform.MAC,
),
),
targets = targets.bundle(
targets = [
"webrtc_chromium_gtests",
],
mixins = [
"mac_default_x64",
],
),
)
builder(
name = "WebRTC Chromium Win Builder",
description_html = "Testing WebRTC inside Chromium",
builder_spec = builder_config.builder_spec(
gclient_config = builder_config.gclient_config(
config = "chromium_webrtc",
apply_configs = ["webrtc_test_resources"],
),
chromium_config = builder_config.chromium_config(
config = "chromium",
apply_configs = [
"dcheck",
"mb",
],
build_config = builder_config.build_config.RELEASE,
target_bits = 64,
target_platform = builder_config.target_platform.WIN,
),
),
gn_args = gn_args.config(
configs = [
"release_builder",
"remoteexec",
"minimal_symbols",
"no_com_init_hooks",
"chrome_with_codecs",
"win",
"x64",
],
),
targets = targets.bundle(
additional_compile_targets = [
"remoting_unittests",
],
),
os = os.WINDOWS_ANY,
)
builder(
name = "WebRTC Chromium Win Tester",
description_html = "Testing WebRTC inside Chromium",
parent = "WebRTC Chromium Win Builder",
builder_spec = builder_config.builder_spec(
execution_mode = builder_config.execution_mode.TEST,
gclient_config = builder_config.gclient_config(config = "chromium_webrtc"),
chromium_config = builder_config.chromium_config(
config = "chromium",
apply_configs = [
"dcheck",
"mb",
],
build_config = builder_config.build_config.RELEASE,
target_bits = 64,
target_platform = builder_config.target_platform.WIN,
),
),
targets = targets.bundle(
targets = [
"webrtc_chromium_gtests",
],
mixins = [
targets.mixin(
swarming = targets.swarming(
dimensions = {
"os": "Windows-11",
},
),
),
],
),
)