Copy infra/config in the main branch.

Bug: chromium:1159728
Change-Id: I611d60749f2a7055c67e6db758fa2f17f433c1a8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/254720
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#36184}
This commit is contained in:
Jeremy Leconte 2022-03-10 18:43:44 +01:00 committed by WebRTC LUCI CQ
parent 2c64c6f50e
commit f2970c8b37
17 changed files with 11012 additions and 0 deletions

6
infra/config/OWNERS Normal file
View File

@ -0,0 +1,6 @@
mbonadei@webrtc.org
jleconte@webrtc.org
titovartem@webrtc.org
jansson@webrtc.org
terelius@webrtc.org
landrey@webrtc.org

20
infra/config/PRESUBMIT.py Normal file
View File

@ -0,0 +1,20 @@
# Copyright (c) 2019 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
def CheckChangeOnUpload(input_api, output_api):
return input_api.RunTests(
input_api.canned_checks.CheckLucicfgGenOutput(
input_api, output_api,
'config.star')) + input_api.canned_checks.CheckChangedLUCIConfigs(
input_api, output_api)
return res
def CheckChangeOnCommit(input_api, output_api):
return CheckChangeOnUpload(input_api, output_api)

52
infra/config/README.md Normal file
View File

@ -0,0 +1,52 @@
# infra/config folder
This folder contains WebRTC project-wide configurations for Chrome infra
services, mainly the CI system ([console][]).
`*.cfg` files are the actual configuration that [LUCI][luci-config] looks at.
They are in *protocol buffer text format*. For example,
[cr-buildbucket.cfg](cr-buildbucket.cfg) defines builders.
However, they are all automatically generated from the [Starlark][] script
[config.star](config.star) that defines a unified config using **[lucicfg][]**.
The main body of the config is at the bottom of the file, following all the
helper definitions.
`lucicfg` should be available as part of depot_tools. After editing
[config.star](config.star) you should run `lucicfg generate config.star` to
re-generate `*.cfg` files. Check the diffs in generated files to confirm that
your change worked as expected. Both the code change and the generated changes
need to be committed together.
## Uploading changes
It is recommended to have a separate checkout for this branch, so switching
to/from it does not populate/delete all files in the master branch.
Initial setup:
```bash
git clone https://webrtc.googlesource.com/src/
```
Now you can create a new branch to make changes:
```bash
git new-branch add-new-builder
# edit/generate files
git commit -a
git cl upload
```
Changes can be reviewed on Gerrit and submitted with commit queue as usual.
### Activating the changes
Any changes to this directory go live soon after landing, without any additional
steps. You can see the status or force a refresh of the config at
[luci-config][].
[console]: https://ci.chromium.org/p/webrtc/g/ci/console
[luci-config]: https://luci-config.appspot.com/#/projects/webrtc
[starlark]: https://github.com/google/starlark-go
[lucicfg]: https://chromium.googlesource.com/infra/luci/luci-go/+/master/lucicfg/doc/

View File

@ -0,0 +1,6 @@
# This file is used by git-cl to get repository specific information.
CODE_REVIEW_SERVER: codereview.webrtc.org
CC_LIST: webrtc-reviews@webrtc.org
GERRIT_HOST: True
PROJECT: webrtc
VIEW_VC: https://webrtc.googlesource.com/src/+/

View File

@ -0,0 +1,365 @@
# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see Config message:
# https://luci-config.appspot.com/schemas/projects:commit-queue.cfg
cq_status_host: "chromium-cq-status.appspot.com"
submit_options {
max_burst: 1
burst_delay {
seconds: 60
}
}
config_groups {
name: "cq"
gerrit {
url: "https://webrtc-review.googlesource.com"
projects {
name: "src"
ref_regexp: "refs/heads/master"
ref_regexp: "refs/heads/main"
}
}
verifiers {
gerrit_cq_ability {
committer_list: "project-webrtc-committers"
dry_run_access_list: "project-webrtc-tryjob-access"
}
tree_status {
url: "https://webrtc-status.appspot.com"
}
tryjob {
builders {
name: "webrtc-internal/g3.webrtc-internal.try/internal_compile_lite"
owner_whitelist_group: "project-webrtc-internal-tryjob-access"
}
builders {
name: "webrtc/try/android_arm64_rel"
}
builders {
name: "webrtc/try/android_arm_dbg"
}
builders {
name: "webrtc/try/android_arm_more_configs"
}
builders {
name: "webrtc/try/android_arm_rel"
}
builders {
name: "webrtc/try/android_chromium_compile"
}
builders {
name: "webrtc/try/android_compile_arm64_rel"
}
builders {
name: "webrtc/try/android_compile_arm_rel"
}
builders {
name: "webrtc/try/android_compile_x64_dbg"
}
builders {
name: "webrtc/try/android_compile_x86_dbg"
}
builders {
name: "webrtc/try/android_compile_x86_rel"
}
builders {
name: "webrtc/try/ios_api_framework"
}
builders {
name: "webrtc/try/ios_compile_arm64_dbg"
}
builders {
name: "webrtc/try/ios_compile_arm64_rel"
}
builders {
name: "webrtc/try/ios_sim_x64_dbg_ios12"
}
builders {
name: "webrtc/try/ios_sim_x64_dbg_ios13"
}
builders {
name: "webrtc/try/ios_sim_x64_dbg_ios14"
}
builders {
name: "webrtc/try/linux_asan"
}
builders {
name: "webrtc/try/linux_chromium_compile"
}
builders {
name: "webrtc/try/linux_chromium_compile_dbg"
}
builders {
name: "webrtc/try/linux_compile_arm64_dbg"
}
builders {
name: "webrtc/try/linux_compile_arm64_rel"
}
builders {
name: "webrtc/try/linux_compile_arm_dbg"
}
builders {
name: "webrtc/try/linux_compile_arm_rel"
}
builders {
name: "webrtc/try/linux_compile_dbg"
}
builders {
name: "webrtc/try/linux_compile_rel"
}
builders {
name: "webrtc/try/linux_libfuzzer_rel"
}
builders {
name: "webrtc/try/linux_more_configs"
}
builders {
name: "webrtc/try/linux_msan"
}
builders {
name: "webrtc/try/linux_rel"
}
builders {
name: "webrtc/try/linux_tsan2"
}
builders {
name: "webrtc/try/linux_ubsan"
}
builders {
name: "webrtc/try/linux_ubsan_vptr"
}
builders {
name: "webrtc/try/linux_x86_dbg"
}
builders {
name: "webrtc/try/linux_x86_rel"
}
builders {
name: "webrtc/try/mac_asan"
}
builders {
name: "webrtc/try/mac_chromium_compile"
}
builders {
name: "webrtc/try/mac_compile_dbg"
}
builders {
name: "webrtc/try/mac_rel"
}
builders {
name: "webrtc/try/presubmit"
disable_reuse: true
}
builders {
name: "webrtc/try/win_asan"
}
builders {
name: "webrtc/try/win_chromium_compile"
}
builders {
name: "webrtc/try/win_chromium_compile_dbg"
}
builders {
name: "webrtc/try/win_compile_x64_clang_dbg"
}
builders {
name: "webrtc/try/win_compile_x64_clang_rel"
}
builders {
name: "webrtc/try/win_compile_x86_clang_dbg"
}
builders {
name: "webrtc/try/win_x86_clang_rel"
}
builders {
name: "webrtc/try/win_x86_more_configs"
}
retry_config {
single_quota: 1
global_quota: 2
failure_weight: 1
transient_failure_weight: 1
timeout_weight: 2
}
}
}
}
config_groups {
name: "cq_branch"
gerrit {
url: "https://webrtc-review.googlesource.com"
projects {
name: "src"
ref_regexp: "refs/branch-heads/.+"
}
}
verifiers {
gerrit_cq_ability {
committer_list: "project-webrtc-committers"
dry_run_access_list: "project-webrtc-tryjob-access"
}
tryjob {
builders {
name: "webrtc/try/android_arm64_rel"
}
builders {
name: "webrtc/try/android_arm_dbg"
}
builders {
name: "webrtc/try/android_arm_more_configs"
}
builders {
name: "webrtc/try/android_arm_rel"
}
builders {
name: "webrtc/try/android_compile_arm64_rel"
}
builders {
name: "webrtc/try/android_compile_arm_rel"
}
builders {
name: "webrtc/try/android_compile_x64_dbg"
}
builders {
name: "webrtc/try/android_compile_x86_dbg"
}
builders {
name: "webrtc/try/android_compile_x86_rel"
}
builders {
name: "webrtc/try/ios_api_framework"
}
builders {
name: "webrtc/try/ios_compile_arm64_dbg"
}
builders {
name: "webrtc/try/ios_compile_arm64_rel"
}
builders {
name: "webrtc/try/ios_sim_x64_dbg_ios12"
}
builders {
name: "webrtc/try/ios_sim_x64_dbg_ios13"
}
builders {
name: "webrtc/try/ios_sim_x64_dbg_ios14"
}
builders {
name: "webrtc/try/linux_asan"
}
builders {
name: "webrtc/try/linux_compile_arm64_dbg"
}
builders {
name: "webrtc/try/linux_compile_arm64_rel"
}
builders {
name: "webrtc/try/linux_compile_arm_dbg"
}
builders {
name: "webrtc/try/linux_compile_arm_rel"
}
builders {
name: "webrtc/try/linux_compile_dbg"
}
builders {
name: "webrtc/try/linux_compile_rel"
}
builders {
name: "webrtc/try/linux_libfuzzer_rel"
}
builders {
name: "webrtc/try/linux_more_configs"
}
builders {
name: "webrtc/try/linux_msan"
}
builders {
name: "webrtc/try/linux_rel"
}
builders {
name: "webrtc/try/linux_tsan2"
}
builders {
name: "webrtc/try/linux_ubsan"
}
builders {
name: "webrtc/try/linux_ubsan_vptr"
}
builders {
name: "webrtc/try/linux_x86_dbg"
}
builders {
name: "webrtc/try/linux_x86_rel"
}
builders {
name: "webrtc/try/mac_asan"
}
builders {
name: "webrtc/try/mac_compile_dbg"
}
builders {
name: "webrtc/try/mac_rel"
}
builders {
name: "webrtc/try/presubmit"
disable_reuse: true
}
builders {
name: "webrtc/try/win_asan"
}
builders {
name: "webrtc/try/win_compile_x64_clang_dbg"
}
builders {
name: "webrtc/try/win_compile_x64_clang_rel"
}
builders {
name: "webrtc/try/win_compile_x86_clang_dbg"
}
builders {
name: "webrtc/try/win_x86_clang_rel"
}
builders {
name: "webrtc/try/win_x86_more_configs"
}
retry_config {
single_quota: 1
global_quota: 2
failure_weight: 1
transient_failure_weight: 1
timeout_weight: 2
}
}
}
}
config_groups {
name: "cq_infra"
gerrit {
url: "https://webrtc-review.googlesource.com"
projects {
name: "src"
ref_regexp: "refs/heads/infra/config"
}
}
verifiers {
gerrit_cq_ability {
committer_list: "project-webrtc-admins"
dry_run_access_list: "project-webrtc-tryjob-access"
}
tryjob {
builders {
name: "webrtc/try/presubmit"
}
retry_config {
single_quota: 1
global_quota: 2
failure_weight: 1
transient_failure_weight: 1
timeout_weight: 2
}
}
}
}

856
infra/config/config.star Executable file
View File

@ -0,0 +1,856 @@
#!/usr/bin/env lucicfg
# Copyright (c) 2019 The WebRTC project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# https://chromium.googlesource.com/infra/luci/luci-go/+/main/lucicfg/doc/
"""LUCI project configuration for WebRTC CQ and CI."""
lucicfg.check_version("1.30.9")
WEBRTC_GIT = "https://webrtc.googlesource.com/src"
WEBRTC_GERRIT = "https://webrtc-review.googlesource.com/src"
WEBRTC_TROOPER_EMAIL = "webrtc-troopers-robots@google.com"
WEBRTC_IOS_XCODE_VERSION = "12a7209"
WEBRTC_XCODE13 = "13a233"
DEFAULT_CPU = "x86-64"
# Helpers:
def make_goma_properties(enable_ats = True, jobs = None):
"""Makes a default goma property with the specified argument.
Args:
enable_ats: True if the ATS should be enabled.
jobs: Number of jobs to be used by the builder.
Returns:
A dictonary with the goma properties.
"""
goma_properties = {
"server_host": "goma.chromium.org",
"use_luci_auth": True,
}
if not enable_ats:
goma_properties["enable_ats"] = enable_ats
if jobs:
goma_properties["jobs"] = jobs
return {"$build/goma": goma_properties}
# Add names of builders to remove from LKGR finder to this list. This is
# useful when a failure can be safely ignored while fixing it without
# blocking the LKGR finder on it.
skipped_lkgr_bots = [
]
# Use LUCI Scheduler BBv2 names and add Scheduler realms configs.
lucicfg.enable_experiment("crbug.com/1182002")
luci.builder.defaults.experiments.set(
{
"luci.recipes.use_python3": 100,
},
)
luci.builder.defaults.test_presentation.set(
resultdb.test_presentation(grouping_keys = ["status", "v.test_suite"]),
)
lucicfg.config(
config_dir = ".",
tracked_files = [
"commit-queue.cfg",
"cr-buildbucket.cfg",
"luci-logdog.cfg",
"luci-milo.cfg",
"luci-notify.cfg",
"luci-notify/**/*",
"luci-scheduler.cfg",
"project.cfg",
"realms.cfg",
],
lint_checks = ["default"],
)
luci.project(
name = "webrtc",
buildbucket = "cr-buildbucket.appspot.com",
logdog = "luci-logdog.appspot.com",
milo = "luci-milo.appspot.com",
notify = "luci-notify.appspot.com",
scheduler = "luci-scheduler.appspot.com",
swarming = "chromium-swarm.appspot.com",
acls = [
acl.entry(
[acl.BUILDBUCKET_READER, acl.LOGDOG_READER, acl.PROJECT_CONFIGS_READER, acl.SCHEDULER_READER],
groups = ["all"],
),
acl.entry(acl.LOGDOG_WRITER, groups = ["luci-logdog-chromium-writers"]),
acl.entry(acl.SCHEDULER_OWNER, groups = ["project-webrtc-admins"]),
],
bindings = [
luci.binding(
roles = "role/configs.validator",
users = [
"webrtc-try-builder@chops-service-accounts.iam.gserviceaccount.com",
],
),
luci.binding(
roles = "role/swarming.poolOwner",
groups = "project-webrtc-admins",
),
luci.binding(
roles = "role/swarming.poolViewer",
groups = "all",
),
# Allow any WebRTC build to trigger a test ran under chromium-tester@
# task service account.
luci.binding(
roles = "role/swarming.taskServiceAccount",
users = [
"chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
],
),
],
)
luci.logdog(
gs_bucket = "chromium-luci-logdog",
)
luci.milo(
logo = "https://storage.googleapis.com/chrome-infra/webrtc-logo-vert-retro-255x305.png",
)
luci.notify(tree_closing_enabled = True)
luci.cq(
status_host = "chromium-cq-status.appspot.com",
submit_max_burst = 1,
submit_burst_delay = 1 * time.minute,
)
luci.gitiles_poller(
name = "webrtc-gitiles-trigger-main",
bucket = "ci",
repo = WEBRTC_GIT,
refs = ["refs/heads/main"],
)
# Swarming permissions:
luci.realm(name = "pools/cron", bindings = [
# Unlike WebRTC's own builders, other projects need an explicit grant to use this pool.
luci.binding(
roles = "role/swarming.poolUser",
projects = "libyuv",
),
])
luci.realm(name = "pools/ci")
luci.realm(name = "pools/ci-tests", bindings = [
# Allow task service accounts of .ci pool/bucket to trigger tasks here.
luci.binding(
roles = "role/swarming.poolUser",
groups = "project-webrtc-ci-task-accounts",
),
# Allow tasks here to use .ci task service accounts.
luci.binding(
roles = "role/swarming.taskServiceAccount",
groups = "project-webrtc-ci-task-accounts",
),
])
luci.realm(name = "ci", bindings = [
# Allow CI builders to create invocations in their own builds.
luci.binding(
roles = "role/resultdb.invocationCreator",
groups = "project-webrtc-ci-task-accounts",
),
])
luci.realm(name = "pools/try", bindings = [
# Allow to use LED & Swarming "Debug" feature to a larger group but only on try bots / builders.
luci.binding(
roles = "role/swarming.poolUser",
groups = "project-webrtc-led-users",
),
])
luci.realm(name = "pools/try-tests", bindings = [
# Allow task service accounts of .try pool/bucket to trigger tasks here.
luci.binding(
roles = "role/swarming.poolUser",
groups = "project-webrtc-try-task-accounts",
),
# Allow tasks here to use .try task service accounts.
luci.binding(
roles = "role/swarming.taskServiceAccount",
groups = "project-webrtc-try-task-accounts",
),
])
luci.realm(name = "try", bindings = [
luci.binding(
roles = "role/swarming.taskTriggerer",
groups = "project-webrtc-led-users",
),
# Allow try builders to create invocations in their own builds.
luci.binding(
roles = "role/resultdb.invocationCreator",
groups = "project-webrtc-try-task-accounts",
),
])
luci.realm(name = "pools/perf", bindings = [
# Allow to use LED & Swarming "Debug" feature to a larger group but only on perf bots / builders.
luci.binding(
roles = "role/swarming.poolUser",
groups = "project-webrtc-led-users",
),
])
luci.realm(name = "perf", bindings = [
luci.binding(
roles = "role/swarming.taskTriggerer",
groups = "project-webrtc-led-users",
),
])
luci.realm(name = "@root", bindings = [
# Allow admins to use LED & Swarming "Debug" feature on all WebRTC bots.
luci.binding(
roles = "role/swarming.poolUser",
groups = "project-webrtc-admins",
),
luci.binding(
roles = "role/swarming.taskTriggerer",
groups = "project-webrtc-admins",
),
])
# Bucket definitions:
luci.bucket(
name = "try",
acls = [
acl.entry(acl.BUILDBUCKET_TRIGGERER, groups = [
"service-account-cq",
"project-webrtc-tryjob-access",
]),
],
)
luci.bucket(
name = "ci",
acls = [
acl.entry(acl.BUILDBUCKET_TRIGGERER, groups = [
"project-webrtc-ci-schedulers",
]),
acl.entry(acl.BUILDBUCKET_TRIGGERER, groups = [
# Allow Pinpoint to trigger builds for bisection
"service-account-chromeperf",
]),
],
)
luci.bucket(
name = "perf",
acls = [
acl.entry(acl.BUILDBUCKET_TRIGGERER, users = [
"webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
]),
],
)
luci.bucket(
name = "cron",
)
# Commit queue definitions:
luci.cq_group(
name = "cq",
tree_status_host = "webrtc-status.appspot.com",
watch = [cq.refset(repo = WEBRTC_GERRIT, refs = ["refs/heads/master", "refs/heads/main"])],
acls = [
acl.entry(acl.CQ_COMMITTER, groups = ["project-webrtc-committers"]),
acl.entry(acl.CQ_DRY_RUNNER, groups = ["project-webrtc-tryjob-access"]),
],
retry_config = cq.RETRY_ALL_FAILURES,
cancel_stale_tryjobs = True,
)
luci.cq_group(
name = "cq_branch",
watch = [cq.refset(repo = WEBRTC_GERRIT, refs = ["refs/branch-heads/.+"])],
acls = [
acl.entry(acl.CQ_COMMITTER, groups = ["project-webrtc-committers"]),
acl.entry(acl.CQ_DRY_RUNNER, groups = ["project-webrtc-tryjob-access"]),
],
retry_config = cq.RETRY_ALL_FAILURES,
cancel_stale_tryjobs = True,
)
luci.cq_group(
name = "cq_infra",
watch = [cq.refset(repo = WEBRTC_GERRIT, refs = ["refs/heads/infra/config"])],
acls = [
acl.entry(acl.CQ_COMMITTER, groups = ["project-webrtc-admins"]),
acl.entry(acl.CQ_DRY_RUNNER, groups = ["project-webrtc-tryjob-access"]),
],
retry_config = cq.RETRY_ALL_FAILURES,
cancel_stale_tryjobs = True,
)
luci.cq_tryjob_verifier(
builder = "presubmit",
cq_group = "cq_infra",
)
luci.cq_tryjob_verifier(
builder = "webrtc-internal:g3.webrtc-internal.try/internal_compile_lite",
owner_whitelist = ["project-webrtc-internal-tryjob-access"],
cq_group = "cq",
)
# Notifier definitions:
luci.notifier(
name = "post_submit_failure_notifier",
on_new_status = ["FAILURE"],
notify_emails = [WEBRTC_TROOPER_EMAIL],
notify_blamelist = True,
template = luci.notifier_template(
name = "build_failure",
body = io.read_file("luci-notify/email-templates/build_failure.template"),
),
)
luci.notifier(
name = "cron_notifier",
on_new_status = ["FAILURE", "INFRA_FAILURE"],
notify_emails = [WEBRTC_TROOPER_EMAIL],
template = luci.notifier_template(
name = "cron",
body = io.read_file("luci-notify/email-templates/cron.template"),
),
)
luci.notifier(
name = "infra_failure_notifier",
on_new_status = ["INFRA_FAILURE"],
notify_emails = [WEBRTC_TROOPER_EMAIL],
template = luci.notifier_template(
name = "infra_failure",
body = io.read_file("luci-notify/email-templates/infra_failure.template"),
),
)
# Tree closer definitions:
luci.tree_closer(
name = "webrtc_tree_closer",
tree_status_host = "webrtc-status.appspot.com",
# TODO: These step filters are copied verbatim from Gatekeeper, for testing
# that LUCI-Notify would take the exact same actions. Once we've switched
# over, this should be updated - several of these steps don't exist in
# WebRTC recipes.
failed_step_regexp = [
"bot_update",
"compile",
"gclient runhooks",
"runhooks",
"update",
"extract build",
"cleanup_temp",
"taskkill",
"compile",
"gn",
],
failed_step_regexp_exclude = ".*\\(experimental\\).*",
)
# Recipe definitions:
def recipe(recipe, pkg = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"):
return luci.recipe(
name = recipe.split("/")[-1],
cipd_package = pkg,
cipd_version = "refs/heads/main",
recipe = recipe,
use_python3 = True,
)
recipe("chromium_trybot")
recipe("run_presubmit")
recipe("webrtc/auto_roll_webrtc_deps")
recipe("webrtc/ios_api_framework")
recipe("webrtc/libfuzzer")
recipe("webrtc/standalone")
recipe("webrtc/update_webrtc_binary_version")
recipe("lkgr_finder", pkg = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build")
# Console definitions:
luci.console_view(name = "ci", title = "Main", repo = WEBRTC_GIT, header = "console-header.textpb", refs = ["refs/heads/master", "refs/heads/main"])
luci.console_view(name = "perf", title = "Perf", repo = WEBRTC_GIT, header = "console-header.textpb", refs = ["refs/heads/master", "refs/heads/main"])
luci.list_view(name = "cron", title = "Cron")
luci.list_view(name = "try", title = "Tryserver")
def add_milo(builder, views):
"""Add Milo console entries for the builder.
Args:
builder: builder name (str).
views: dict where keys are names of consoles and values are either a
category for the console (str, pipe-separated) or True, which means
adding to a list view rather than a console.
"""
for view_name, category in views.items():
if category == None:
continue
elif type(category) == "string":
category, _, short_name = category.rpartition("|")
luci.console_view_entry(
console_view = view_name,
builder = builder,
category = category or None,
short_name = short_name or None,
)
elif category == True:
luci.list_view_entry(
list_view = view_name,
builder = builder,
)
else:
fail("Unexpected value for category: %r" % category)
lkgr_builders = []
# Builder-defining functions:
def webrtc_builder(
name,
bucket,
dimensions,
properties = None,
recipe = "standalone",
priority = 30,
execution_timeout = 2 * time.hour,
**kwargs):
"""WebRTC specific wrapper around luci.builder.
Args:
name: builder name (str).
bucket: The name of the bucket the builder belongs to.
dimensions: dict of Swarming dimensions (strings) to search machines by.
properties: dict of properties to pass to the recipe (on top of the default ones).
recipe: string with the name of the recipe to run.
priority: int [1-255] or None, indicating swarming task priority, lower is
more important. If None, defer the decision to Buildbucket service.
execution_timeout: int or None, how long to wait for a running build to finish before
forcefully aborting it and marking the build as timed out. If None,
defer the decision to Buildbucket service.
**kwargs: Pass on to webrtc_builder / luci.builder.
Returns:
A luci.builder.
"""
properties = properties or {}
properties["$recipe_engine/isolated"] = {
"server": "https://isolateserver.appspot.com",
}
resultdb_bq_table = "webrtc-ci.resultdb." + bucket + "_test_results"
return luci.builder(
name = name,
bucket = bucket,
executable = recipe,
dimensions = dimensions,
properties = properties,
execution_timeout = execution_timeout,
priority = priority,
build_numbers = True,
swarming_tags = ["vpython:native-python-wrapper"],
resultdb_settings = resultdb.settings(
enable = True,
bq_exports = [
resultdb.export_test_results(bq_table = resultdb_bq_table),
],
),
**kwargs
)
def ci_builder(
name,
ci_cat,
dimensions,
properties = None,
perf_cat = None,
prioritized = False,
enabled = True,
**kwargs):
"""Add a post-submit builder.
Args:
name: builder name (str).
ci_cat: the category + name for the /ci/ console, or None to omit from the console.
dimensions: dict of Swarming dimensions (strings) to search machines by.
properties: dict of properties to pass to the recipe (on top of the default ones).
perf_cat: the category + name for the /perf/ console, or None to omit from the console.
prioritized: True to make this builder have a higher priority and never batch builds.
enabled: False to exclude this builder from consoles and failure notifications.
**kwargs: Pass on to webrtc_builder / luci.builder.
Returns:
A luci.builder.
Notifications are also disabled if a builder is not on either of /ci/ or /perf/ consoles.
"""
if prioritized:
kwargs["triggering_policy"] = scheduler.greedy_batching(
max_batch_size = 1,
max_concurrent_invocations = 3,
)
kwargs["priority"] = 29
if enabled:
add_milo(name, {"ci": ci_cat, "perf": perf_cat})
if ci_cat:
lkgr_builders.append(name)
dimensions.update({"pool": "luci.webrtc.ci", "cpu": kwargs.pop("cpu", DEFAULT_CPU)})
properties = properties or {}
properties["builder_group"] = "client.webrtc"
properties.update(make_goma_properties())
notifies = ["post_submit_failure_notifier", "infra_failure_notifier"]
notifies += ["webrtc_tree_closer"] if name not in skipped_lkgr_bots else []
return webrtc_builder(
name = name,
dimensions = dimensions,
properties = properties,
bucket = "ci",
service_account = "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
triggered_by = ["webrtc-gitiles-trigger-main"] if enabled else None,
repo = WEBRTC_GIT,
notifies = notifies if enabled else None,
**kwargs
)
def try_builder(
name,
dimensions,
properties = None,
try_cat = True,
cq = {},
branch_cq = True,
goma_enable_ats = True,
goma_jobs = None,
**kwargs):
"""Add a pre-submit builder.
Args:
name: builder name (str).
dimensions: dict of Swarming dimensions (strings) to search machines by.
properties: dict of properties to pass to the recipe (on top of the default ones).
try_cat: boolean, whether to include this builder in the /try/ console. See also: `add_milo`.
cq: None to exclude this from all commit queues, or a dict of kwargs for cq_tryjob_verifier.
branch_cq: False to exclude this builder just from the release-branch CQ.
goma_enable_ats: True if the ATS should be enabled by the builder.
goma_jobs: Number of jobs to be used by the builder.
**kwargs: Pass on to webrtc_builder / luci.builder.
Returns:
A luci.builder.
"""
add_milo(name, {"try": try_cat})
dimensions.update({"pool": "luci.webrtc.try", "cpu": DEFAULT_CPU})
properties = properties or {}
properties["builder_group"] = "tryserver.webrtc"
properties.update(make_goma_properties(enable_ats = goma_enable_ats, jobs = goma_jobs))
if cq != None:
luci.cq_tryjob_verifier(name, cq_group = "cq", **cq)
if branch_cq:
luci.cq_tryjob_verifier(name, cq_group = "cq_branch", **cq)
return webrtc_builder(
name = name,
dimensions = dimensions,
properties = properties,
bucket = "try",
service_account = "webrtc-try-builder@chops-service-accounts.iam.gserviceaccount.com",
notifies = ["infra_failure_notifier"],
**kwargs
)
def perf_builder(name, perf_cat, **kwargs):
add_milo(name, {"perf": perf_cat})
properties = make_goma_properties()
properties["builder_group"] = "client.webrtc.perf"
return webrtc_builder(
name = name,
dimensions = {"pool": "luci.webrtc.perf", "os": "Linux"},
properties = properties,
bucket = "perf",
service_account = "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
# log_base of 1.7 means:
# when there are P pending builds, LUCI will batch the first B builds.
# P: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
# B: 1 1 2 2 3 3 3 3 4 4 4 4 4 4 5 ...
triggering_policy = scheduler.logarithmic_batching(log_base = 1.7),
repo = WEBRTC_GIT,
execution_timeout = 3 * time.hour,
notifies = ["post_submit_failure_notifier", "infra_failure_notifier"],
**kwargs
)
def cron_builder(name, service_account = None, **kwargs):
if service_account == None:
service_account = "chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com"
add_milo(name, {"cron": True})
return webrtc_builder(
name = name,
dimensions = {"pool": "luci.webrtc.cron", "os": "Linux", "cpu": DEFAULT_CPU},
bucket = "cron",
service_account = service_account,
notifies = ["cron_notifier"],
**kwargs
)
def normal_builder_factory(**common_kwargs):
def builder(*args, **kwargs):
kwargs.update(common_kwargs)
return ci_builder(*args, **kwargs)
def try_job(name, **kwargs):
kwargs.update(common_kwargs)
return try_builder(name, **kwargs)
return builder, try_job
# Mixins:
linux_builder, linux_try_job = normal_builder_factory(
dimensions = {"os": "Linux", "inside_docker": "0"},
)
android_builder, android_try_job = normal_builder_factory(
dimensions = {"os": "Linux"},
)
win_builder = normal_builder_factory(
dimensions = {"os": "Windows"},
)[0]
win_try_job = normal_builder_factory(
dimensions = {"os": "Windows"},
goma_enable_ats = False,
)[1]
mac_builder, mac_try_job = normal_builder_factory(
dimensions = {"os": "Mac"},
)
ios_builder, ios_try_job = normal_builder_factory(
dimensions = {"os": "Mac-10.15"},
properties = {"xcode_build_version": WEBRTC_IOS_XCODE_VERSION},
caches = [swarming.cache(
name = "xcode_ios_" + WEBRTC_IOS_XCODE_VERSION,
path = "xcode_ios_" + WEBRTC_IOS_XCODE_VERSION + ".app",
)],
)
ios_builder_macos11, ios_try_job_macos11 = normal_builder_factory(
dimensions = {"os": "Mac-11"},
properties = {"xcode_build_version": WEBRTC_XCODE13},
caches = [swarming.cache(
name = "xcode_ios_" + WEBRTC_XCODE13,
path = "xcode_ios_" + WEBRTC_XCODE13 + ".app",
)],
)
# Actual builder configuration:
android_builder("Android32 (M Nexus5X)(dbg)", "Android|arm|dbg")
android_try_job("android_compile_arm_dbg", cq = None)
android_try_job("android_arm_dbg")
android_builder("Android32 (M Nexus5X)", "Android|arm|rel")
android_try_job("android_arm_rel")
android_builder("Android32 Builder arm", "Android|arm|size", perf_cat = "Android|arm|Builder|", prioritized = True)
android_try_job("android_compile_arm_rel")
perf_builder("Perf Android32 (M Nexus5)", "Android|arm|Tester|M Nexus5", triggered_by = ["Android32 Builder arm"])
perf_builder("Perf Android32 (M AOSP Nexus6)", "Android|arm|Tester|M AOSP Nexus6", triggered_by = ["Android32 Builder arm"])
android_try_job("android_compile_arm64_dbg", cq = None)
android_try_job("android_arm64_dbg", cq = None)
android_builder("Android64 (M Nexus5X)", "Android|arm64|rel")
android_try_job("android_arm64_rel")
android_builder("Android64 Builder arm64", "Android|arm64|size", perf_cat = "Android|arm64|Builder|", prioritized = True)
perf_builder("Perf Android64 (M Nexus5X)", "Android|arm64|Tester|M Nexus5X", triggered_by = ["Android64 Builder arm64"])
perf_builder("Perf Android64 (O Pixel2)", "Android|arm64|Tester|O Pixel2", triggered_by = ["Android64 Builder arm64"])
android_try_job("android_compile_arm64_rel")
android_builder("Android64 Builder x64 (dbg)", "Android|x64|dbg")
android_try_job("android_compile_x64_dbg")
android_try_job("android_compile_x64_rel", cq = None)
android_builder("Android32 Builder x86 (dbg)", "Android|x86|dbg")
android_try_job("android_compile_x86_dbg")
android_builder("Android32 Builder x86", "Android|x86|rel")
android_try_job("android_compile_x86_rel")
android_builder("Android32 (more configs)", "Android|arm|more")
android_try_job("android_arm_more_configs")
android_try_job("android_chromium_compile", recipe = "chromium_trybot", branch_cq = False)
ios_builder("iOS64 Debug", "iOS|arm64|dbg")
ios_try_job("ios_compile_arm64_dbg")
ios_builder("iOS64 Release", "iOS|arm64|rel")
ios_try_job("ios_compile_arm64_rel")
ios_builder("iOS64 Sim Debug (iOS 14.0)", "iOS|x64|14")
ios_try_job("ios_sim_x64_dbg_ios14")
ios_builder("iOS64 Sim Debug (iOS 13)", "iOS|x64|13")
ios_try_job("ios_sim_x64_dbg_ios13")
ios_builder("iOS64 Sim Debug (iOS 12)", "iOS|x64|12")
ios_try_job("ios_sim_x64_dbg_ios12")
ios_builder_macos11("iOS API Framework Builder", "iOS|fat|size", recipe = "ios_api_framework", prioritized = True)
ios_try_job_macos11("ios_api_framework", recipe = "ios_api_framework")
linux_builder("Linux32 Debug", "Linux|x86|dbg")
linux_try_job("linux_x86_dbg")
linux_builder("Linux32 Release", "Linux|x86|rel")
linux_try_job("linux_x86_rel")
linux_builder("Linux64 Debug", "Linux|x64|dbg")
linux_try_job("linux_dbg", cq = None)
linux_try_job("linux_compile_dbg")
linux_builder("Linux64 Release", "Linux|x64|rel")
linux_try_job("linux_rel")
linux_builder("Linux64 Builder", "Linux|x64|size", perf_cat = "Linux|x64|Builder|", prioritized = True)
linux_try_job("linux_compile_rel")
perf_builder("Perf Linux Trusty", "Linux|x64|Tester|Trusty", triggered_by = ["Linux64 Builder"])
perf_builder("Perf Linux Bionic", "Linux|x64|Tester|Bionic", triggered_by = ["Linux64 Builder"])
linux_builder("Linux32 Debug (ARM)", "Linux|arm|dbg")
linux_try_job("linux_compile_arm_dbg")
linux_builder("Linux32 Release (ARM)", "Linux|arm|rel")
linux_try_job("linux_compile_arm_rel")
linux_builder("Linux64 Debug (ARM)", "Linux|arm64|dbg")
linux_try_job("linux_compile_arm64_dbg")
linux_builder("Linux64 Release (ARM)", "Linux|arm64|rel")
linux_try_job("linux_compile_arm64_rel")
linux_builder("Linux Asan", "Linux|x64|asan")
linux_try_job("linux_asan")
linux_builder("Linux MSan", "Linux|x64|msan")
linux_try_job("linux_msan")
linux_builder("Linux Tsan v2", "Linux|x64|tsan")
linux_try_job("linux_tsan2")
linux_builder("Linux UBSan", "Linux|x64|ubsan")
linux_try_job("linux_ubsan")
linux_builder("Linux UBSan vptr", "Linux|x64|ubsan")
linux_try_job("linux_ubsan_vptr")
linux_builder("Linux64 Release (Libfuzzer)", "Linux|x64|fuzz", recipe = "libfuzzer")
linux_try_job("linux_libfuzzer_rel", recipe = "libfuzzer")
linux_builder("Linux (more configs)", "Linux|x64|more")
linux_try_job("linux_more_configs")
linux_try_job("linux_chromium_compile", recipe = "chromium_trybot", branch_cq = False)
linux_try_job("linux_chromium_compile_dbg", recipe = "chromium_trybot", branch_cq = False)
mac_builder("Mac64 Debug", "Mac|x64|dbg")
mac_try_job("mac_dbg", cq = None)
mac_try_job("mac_compile_dbg")
mac_builder("Mac64 Release", "Mac|x64|rel")
mac_try_job("mac_rel")
mac_try_job("mac_compile_rel", cq = None)
mac_builder("Mac64 Builder", ci_cat = None, perf_cat = "Mac|x64|Builder|")
perf_builder("Perf Mac 10.11", "Mac|x64|Tester|10.11", triggered_by = ["Mac64 Builder"])
mac_builder("Mac Asan", "Mac|x64|asan")
mac_try_job("mac_asan")
mac_try_job("mac_chromium_compile", recipe = "chromium_trybot", branch_cq = False)
mac_builder("MacARM64 M1 Release", "Mac|arm64M1|rel", cpu = "arm64-64-Apple_M1")
mac_try_job("mac_rel_m1", try_cat = None, cq = None)
mac_try_job("mac_dbg_m1", try_cat = None, cq = None)
win_builder("Win32 Debug (Clang)", "Win Clang|x86|dbg")
win_try_job("win_x86_clang_dbg", cq = None)
win_try_job("win_compile_x86_clang_dbg")
win_builder("Win32 Release (Clang)", "Win Clang|x86|rel")
win_try_job("win_x86_clang_rel")
win_try_job("win_compile_x86_clang_rel", cq = None)
win_builder("Win32 Builder (Clang)", ci_cat = None, perf_cat = "Win|x86|Builder|")
perf_builder("Perf Win7", "Win|x86|Tester|7", triggered_by = ["Win32 Builder (Clang)"])
win_builder("Win64 Debug (Clang)", "Win Clang|x64|dbg")
win_try_job("win_x64_clang_dbg", cq = None)
win_try_job("win_x64_clang_dbg_win10", cq = None)
win_try_job("win_compile_x64_clang_dbg")
win_builder("Win64 Release (Clang)", "Win Clang|x64|rel")
win_try_job("win_x64_clang_rel", cq = None)
win_try_job("win_compile_x64_clang_rel")
win_builder("Win64 ASan", "Win Clang|x64|asan")
win_try_job("win_asan")
win_builder("Win (more configs)", "Win Clang|x86|more")
win_try_job("win_x86_more_configs")
win_try_job("win_chromium_compile", recipe = "chromium_trybot", branch_cq = False, goma_jobs = 150)
win_try_job("win_chromium_compile_dbg", recipe = "chromium_trybot", branch_cq = False, goma_jobs = 150)
linux_try_job(
"presubmit",
recipe = "run_presubmit",
properties = {"repo_name": "webrtc", "runhooks": True},
priority = 28,
cq = {"disable_reuse": True},
)
cron_builder(
"Auto-roll - WebRTC DEPS",
recipe = "auto_roll_webrtc_deps",
schedule = "0 */2 * * *", # Every 2 hours.
)
cron_builder(
"WebRTC version update",
recipe = "update_webrtc_binary_version",
schedule = "0 4 * * *", # Every day at 4am.
service_account = "webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com",
)
lkgr_config = {
"project": "webrtc",
"source_url": WEBRTC_GIT,
"status_url": "https://webrtc-status.appspot.com",
"allowed_lag": 150, # hours
"allowed_gap": 4, # commits behind
"error_recipients": WEBRTC_TROOPER_EMAIL,
"buckets": {
"webrtc/ci": {
# bucket alias: luci.webrtc.ci
"builders": [
b
for b in sorted(lkgr_builders)
if b not in skipped_lkgr_bots
],
},
"chromium/webrtc.fyi": {
# bucket alias: luci.chromium.webrtc.fyi
"builders": [
"WebRTC Chromium FYI Android Builder (dbg)",
"WebRTC Chromium FYI Android Builder ARM64 (dbg)",
"WebRTC Chromium FYI Android Builder",
"WebRTC Chromium FYI Android Tests (dbg) (M Nexus5X)",
"WebRTC Chromium FYI Android Tests (dbg) (N Nexus5X)",
"WebRTC Chromium FYI Linux Builder (dbg)",
"WebRTC Chromium FYI Linux Builder",
"WebRTC Chromium FYI Linux Tester",
"WebRTC Chromium FYI Mac Builder (dbg)",
"WebRTC Chromium FYI Mac Builder",
"WebRTC Chromium FYI Mac Tester",
"WebRTC Chromium FYI Win Builder (dbg)",
"WebRTC Chromium FYI Win Builder",
"WebRTC Chromium FYI Win10 Tester",
"WebRTC Chromium FYI Win7 Tester",
"WebRTC Chromium FYI ios-device",
"WebRTC Chromium FYI ios-simulator",
],
},
},
}
cron_builder(
"WebRTC lkgr finder",
recipe = "lkgr_finder",
properties = {
"project": "webrtc",
"repo": WEBRTC_GIT,
"ref": "refs/heads/lkgr",
"src_ref": "refs/heads/main",
"lkgr_status_gs_path": "chromium-webrtc/lkgr-status",
"config": lkgr_config,
},
schedule = "*/10 * * * *", # Every 10 minutes.
)

View File

@ -0,0 +1,59 @@
tree_status_host: "webrtc-status.appspot.com"
links {
name: "Consoles"
links {
text: "WebRTC"
url: "/p/webrtc/g/ci"
alt: "WebRTC Main CI Console"
}
links {
text: "WebRTC Cron"
url: "/p/webrtc/g/cron"
alt: "WebRTC Cron Console"
}
links {
text: "WebRTC Perf"
url: "/p/webrtc/g/perf"
alt: "WebRTC Perf Console"
}
links {
text: "Chromium"
url: "/p/chromium/g/chromium.webrtc"
alt: "Chromium WebRTC Console"
}
links {
text: "Chromium FYI"
url: "/p/chromium/g/chromium.webrtc.fyi"
alt: "Chromium WebRTC FYI Console"
}
links {
text: "Try WebRTC"
url: "/p/webrtc/g/try"
alt: "WebRTC Try Builders"
}
}
links {
name: "Links"
links {
text: "Source"
url: "https://webrtc.googlesource.com/src/+/main/"
}
links {
text: "Reviews"
url: "https://webrtc-review.googlesource.com/"
}
links {
text: "Bugs"
url: "https://bugs.webrtc.org/"
}
links {
text: "LKGR status"
url: "https://storage.cloud.google.com/chromium-webrtc/lkgr-status/webrtc-lkgr-status.html"
}
}
console_groups {
console_ids: "webrtc/ci"
console_ids: "webrtc/perf"
console_ids: "chromium/chromium.webrtc"
console_ids: "chromium/chromium.webrtc.fyi"
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see ProjectConfig message:
# https://luci-config.appspot.com/schemas/projects:luci-logdog.cfg
reader_auth_groups: "all"
writer_auth_groups: "luci-logdog-chromium-writers"
archive_gs_bucket: "chromium-luci-logdog"

606
infra/config/luci-milo.cfg Normal file
View File

@ -0,0 +1,606 @@
# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see Project message:
# https://luci-config.appspot.com/schemas/projects:luci-milo.cfg
consoles {
id: "ci"
name: "Main"
repo_url: "https://webrtc.googlesource.com/src"
refs: "regexp:refs/heads/master"
refs: "regexp:refs/heads/main"
manifest_name: "REVISION"
builders {
name: "buildbucket/luci.webrtc.ci/Android32 (M Nexus5X)(dbg)"
category: "Android|arm"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/Android32 (M Nexus5X)"
category: "Android|arm"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Android32 Builder arm"
category: "Android|arm"
short_name: "size"
}
builders {
name: "buildbucket/luci.webrtc.ci/Android64 (M Nexus5X)"
category: "Android|arm64"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Android64 Builder arm64"
category: "Android|arm64"
short_name: "size"
}
builders {
name: "buildbucket/luci.webrtc.ci/Android64 Builder x64 (dbg)"
category: "Android|x64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/Android32 Builder x86 (dbg)"
category: "Android|x86"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/Android32 Builder x86"
category: "Android|x86"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Android32 (more configs)"
category: "Android|arm"
short_name: "more"
}
builders {
name: "buildbucket/luci.webrtc.ci/iOS64 Debug"
category: "iOS|arm64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/iOS64 Release"
category: "iOS|arm64"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/iOS64 Sim Debug (iOS 14.0)"
category: "iOS|x64"
short_name: "14"
}
builders {
name: "buildbucket/luci.webrtc.ci/iOS64 Sim Debug (iOS 13)"
category: "iOS|x64"
short_name: "13"
}
builders {
name: "buildbucket/luci.webrtc.ci/iOS64 Sim Debug (iOS 12)"
category: "iOS|x64"
short_name: "12"
}
builders {
name: "buildbucket/luci.webrtc.ci/iOS API Framework Builder"
category: "iOS|fat"
short_name: "size"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux32 Debug"
category: "Linux|x86"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux32 Release"
category: "Linux|x86"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux64 Debug"
category: "Linux|x64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux64 Release"
category: "Linux|x64"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux64 Builder"
category: "Linux|x64"
short_name: "size"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux32 Debug (ARM)"
category: "Linux|arm"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux32 Release (ARM)"
category: "Linux|arm"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux64 Debug (ARM)"
category: "Linux|arm64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux64 Release (ARM)"
category: "Linux|arm64"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux Asan"
category: "Linux|x64"
short_name: "asan"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux MSan"
category: "Linux|x64"
short_name: "msan"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux Tsan v2"
category: "Linux|x64"
short_name: "tsan"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux UBSan"
category: "Linux|x64"
short_name: "ubsan"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux UBSan vptr"
category: "Linux|x64"
short_name: "ubsan"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux64 Release (Libfuzzer)"
category: "Linux|x64"
short_name: "fuzz"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux (more configs)"
category: "Linux|x64"
short_name: "more"
}
builders {
name: "buildbucket/luci.webrtc.ci/Mac64 Debug"
category: "Mac|x64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/Mac64 Release"
category: "Mac|x64"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Mac Asan"
category: "Mac|x64"
short_name: "asan"
}
builders {
name: "buildbucket/luci.webrtc.ci/MacARM64 M1 Release"
category: "Mac|arm64M1"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Win32 Debug (Clang)"
category: "Win Clang|x86"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/Win32 Release (Clang)"
category: "Win Clang|x86"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Win64 Debug (Clang)"
category: "Win Clang|x64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.webrtc.ci/Win64 Release (Clang)"
category: "Win Clang|x64"
short_name: "rel"
}
builders {
name: "buildbucket/luci.webrtc.ci/Win64 ASan"
category: "Win Clang|x64"
short_name: "asan"
}
builders {
name: "buildbucket/luci.webrtc.ci/Win (more configs)"
category: "Win Clang|x86"
short_name: "more"
}
header {
links {
name: "Consoles"
links {
text: "WebRTC"
url: "/p/webrtc/g/ci"
alt: "WebRTC Main CI Console"
}
links {
text: "WebRTC Cron"
url: "/p/webrtc/g/cron"
alt: "WebRTC Cron Console"
}
links {
text: "WebRTC Perf"
url: "/p/webrtc/g/perf"
alt: "WebRTC Perf Console"
}
links {
text: "Chromium"
url: "/p/chromium/g/chromium.webrtc"
alt: "Chromium WebRTC Console"
}
links {
text: "Chromium FYI"
url: "/p/chromium/g/chromium.webrtc.fyi"
alt: "Chromium WebRTC FYI Console"
}
links {
text: "Try WebRTC"
url: "/p/webrtc/g/try"
alt: "WebRTC Try Builders"
}
}
links {
name: "Links"
links {
text: "Source"
url: "https://webrtc.googlesource.com/src/+/main/"
}
links {
text: "Reviews"
url: "https://webrtc-review.googlesource.com/"
}
links {
text: "Bugs"
url: "https://bugs.webrtc.org/"
}
links {
text: "LKGR status"
url: "https://storage.cloud.google.com/chromium-webrtc/lkgr-status/webrtc-lkgr-status.html"
}
}
console_groups {
console_ids: "webrtc/ci"
console_ids: "webrtc/perf"
console_ids: "chromium/chromium.webrtc"
console_ids: "chromium/chromium.webrtc.fyi"
}
tree_status_host: "webrtc-status.appspot.com"
}
}
consoles {
id: "perf"
name: "Perf"
repo_url: "https://webrtc.googlesource.com/src"
refs: "regexp:refs/heads/master"
refs: "regexp:refs/heads/main"
manifest_name: "REVISION"
builders {
name: "buildbucket/luci.webrtc.ci/Android32 Builder arm"
category: "Android|arm|Builder"
}
builders {
name: "buildbucket/luci.webrtc.perf/Perf Android32 (M Nexus5)"
category: "Android|arm|Tester"
short_name: "M Nexus5"
}
builders {
name: "buildbucket/luci.webrtc.perf/Perf Android32 (M AOSP Nexus6)"
category: "Android|arm|Tester"
short_name: "M AOSP Nexus6"
}
builders {
name: "buildbucket/luci.webrtc.ci/Android64 Builder arm64"
category: "Android|arm64|Builder"
}
builders {
name: "buildbucket/luci.webrtc.perf/Perf Android64 (M Nexus5X)"
category: "Android|arm64|Tester"
short_name: "M Nexus5X"
}
builders {
name: "buildbucket/luci.webrtc.perf/Perf Android64 (O Pixel2)"
category: "Android|arm64|Tester"
short_name: "O Pixel2"
}
builders {
name: "buildbucket/luci.webrtc.ci/Linux64 Builder"
category: "Linux|x64|Builder"
}
builders {
name: "buildbucket/luci.webrtc.perf/Perf Linux Trusty"
category: "Linux|x64|Tester"
short_name: "Trusty"
}
builders {
name: "buildbucket/luci.webrtc.perf/Perf Linux Bionic"
category: "Linux|x64|Tester"
short_name: "Bionic"
}
builders {
name: "buildbucket/luci.webrtc.ci/Mac64 Builder"
category: "Mac|x64|Builder"
}
builders {
name: "buildbucket/luci.webrtc.perf/Perf Mac 10.11"
category: "Mac|x64|Tester"
short_name: "10.11"
}
builders {
name: "buildbucket/luci.webrtc.ci/Win32 Builder (Clang)"
category: "Win|x86|Builder"
}
builders {
name: "buildbucket/luci.webrtc.perf/Perf Win7"
category: "Win|x86|Tester"
short_name: "7"
}
header {
links {
name: "Consoles"
links {
text: "WebRTC"
url: "/p/webrtc/g/ci"
alt: "WebRTC Main CI Console"
}
links {
text: "WebRTC Cron"
url: "/p/webrtc/g/cron"
alt: "WebRTC Cron Console"
}
links {
text: "WebRTC Perf"
url: "/p/webrtc/g/perf"
alt: "WebRTC Perf Console"
}
links {
text: "Chromium"
url: "/p/chromium/g/chromium.webrtc"
alt: "Chromium WebRTC Console"
}
links {
text: "Chromium FYI"
url: "/p/chromium/g/chromium.webrtc.fyi"
alt: "Chromium WebRTC FYI Console"
}
links {
text: "Try WebRTC"
url: "/p/webrtc/g/try"
alt: "WebRTC Try Builders"
}
}
links {
name: "Links"
links {
text: "Source"
url: "https://webrtc.googlesource.com/src/+/main/"
}
links {
text: "Reviews"
url: "https://webrtc-review.googlesource.com/"
}
links {
text: "Bugs"
url: "https://bugs.webrtc.org/"
}
links {
text: "LKGR status"
url: "https://storage.cloud.google.com/chromium-webrtc/lkgr-status/webrtc-lkgr-status.html"
}
}
console_groups {
console_ids: "webrtc/ci"
console_ids: "webrtc/perf"
console_ids: "chromium/chromium.webrtc"
console_ids: "chromium/chromium.webrtc.fyi"
}
tree_status_host: "webrtc-status.appspot.com"
}
}
consoles {
id: "cron"
name: "Cron"
builders {
name: "buildbucket/luci.webrtc.cron/Auto-roll - WebRTC DEPS"
}
builders {
name: "buildbucket/luci.webrtc.cron/WebRTC version update"
}
builders {
name: "buildbucket/luci.webrtc.cron/WebRTC lkgr finder"
}
builder_view_only: true
}
consoles {
id: "try"
name: "Tryserver"
builders {
name: "buildbucket/luci.webrtc.try/android_compile_arm_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/android_arm_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/android_arm_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/android_compile_arm_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/android_compile_arm64_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/android_arm64_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/android_arm64_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/android_compile_arm64_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/android_compile_x64_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/android_compile_x64_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/android_compile_x86_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/android_compile_x86_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/android_arm_more_configs"
}
builders {
name: "buildbucket/luci.webrtc.try/android_chromium_compile"
}
builders {
name: "buildbucket/luci.webrtc.try/ios_compile_arm64_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/ios_compile_arm64_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/ios_sim_x64_dbg_ios14"
}
builders {
name: "buildbucket/luci.webrtc.try/ios_sim_x64_dbg_ios13"
}
builders {
name: "buildbucket/luci.webrtc.try/ios_sim_x64_dbg_ios12"
}
builders {
name: "buildbucket/luci.webrtc.try/ios_api_framework"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_x86_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_x86_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_compile_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_compile_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_compile_arm_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_compile_arm_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_compile_arm64_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_compile_arm64_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_asan"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_msan"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_tsan2"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_ubsan"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_ubsan_vptr"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_libfuzzer_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_more_configs"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_chromium_compile"
}
builders {
name: "buildbucket/luci.webrtc.try/linux_chromium_compile_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/mac_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/mac_compile_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/mac_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/mac_compile_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/mac_asan"
}
builders {
name: "buildbucket/luci.webrtc.try/mac_chromium_compile"
}
builders {
name: "buildbucket/luci.webrtc.try/win_x86_clang_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/win_compile_x86_clang_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/win_x86_clang_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/win_compile_x86_clang_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/win_x64_clang_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/win_x64_clang_dbg_win10"
}
builders {
name: "buildbucket/luci.webrtc.try/win_compile_x64_clang_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/win_x64_clang_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/win_compile_x64_clang_rel"
}
builders {
name: "buildbucket/luci.webrtc.try/win_asan"
}
builders {
name: "buildbucket/luci.webrtc.try/win_x86_more_configs"
}
builders {
name: "buildbucket/luci.webrtc.try/win_chromium_compile"
}
builders {
name: "buildbucket/luci.webrtc.try/win_chromium_compile_dbg"
}
builders {
name: "buildbucket/luci.webrtc.try/presubmit"
}
builder_view_only: true
}
logo_url: "https://storage.googleapis.com/chrome-infra/webrtc-logo-vert-retro-255x305.png"

2179
infra/config/luci-notify.cfg Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
Test failure in WebRTC on {{ .Build.Builder.Builder }}
<p>There was a failure on builder "{{ .Build.Builder.Builder }}".</p>
<p><a href="https://ci.chromium.org/b/{{ .Build.Id }}">Full details are available here.</a></p>
<table>
<tr>
<td>New status:</td>
<td><b><a href="https://ci.chromium.org/b/{{ .Build.Id }}">{{ .Build.Status }}</a></b></td>
</tr>
<tr>
<td>Previous status:</td>
<td>{{ .OldStatus }}</td>
</tr>
<tr>
<td>Created at:</td>
<td>{{ .Build.CreateTime | time }}</td>
</tr>
<tr>
<td>Finished at:</td>
<td>{{ .Build.EndTime | time }}</td>
</tr>
</table>

View File

@ -0,0 +1,33 @@
{{ .Build.Builder.Builder }} failed to run
<p>There was a failure on builder "{{ .Build.Builder.Builder }}".</p>
<p><a href="https://ci.chromium.org/b/{{ .Build.Id }}">Full details are available here.</a></p>
<table>
<tr>
<td>Builder:</td>
<td>
<a href="https://ci.chromium.org/p/webrtc/builders/luci.webrtc.cron/{{ .Build.Builder.Builder }}">
{{ .Build.Builder.Builder }}
</a>
(<a href="https://ci.chromium.org/p/webrtc/g/cron/console">Console</a>)
</td>
</tr>
<tr>
<td>New status:</td>
<td><b><a href="https://ci.chromium.org/b/{{ .Build.Id }}">{{ .Build.Status }}</a></b></td>
</tr>
<tr>
<td>Previous status:</td>
<td>{{ .OldStatus }}</td>
</tr>
<tr>
<td>Created at:</td>
<td>{{ .Build.CreateTime | time }}</td>
</tr>
<tr>
<td>Finished at:</td>
<td>{{ .Build.EndTime | time }}</td>
</tr>
</table>

View File

@ -0,0 +1,24 @@
Infra failure in WebRTC on {{ .Build.Builder.Builder }}
<p>There was a failure on builder "{{ .Build.Builder.Builder }}".</p>
<p><a href="https://ci.chromium.org/b/{{ .Build.Id }}">Full details are available here.</a></p>
<table>
<tr>
<td>New status:</td>
<td><b><a href="https://ci.chromium.org/b/{{ .Build.Id }}">{{ .Build.Status }}</a></b></td>
</tr>
<tr>
<td>Previous status:</td>
<td>{{ .OldStatus }}</td>
</tr>
<tr>
<td>Created at:</td>
<td>{{ .Build.CreateTime | time }}</td>
</tr>
<tr>
<td>Finished at:</td>
<td>{{ .Build.EndTime | time }}</td>
</tr>
</table>

View File

@ -0,0 +1,715 @@
# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see ProjectConfig message:
# https://luci-config.appspot.com/schemas/projects:luci-scheduler.cfg
job {
id: "Android32 (M Nexus5X)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android32 (M Nexus5X)"
}
}
job {
id: "Android32 (M Nexus5X)(dbg)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android32 (M Nexus5X)(dbg)"
}
}
job {
id: "Android32 (more configs)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android32 (more configs)"
}
}
job {
id: "Android32 Builder arm"
realm: "ci"
acl_sets: "ci"
triggering_policy {
kind: GREEDY_BATCHING
max_concurrent_invocations: 3
max_batch_size: 1
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android32 Builder arm"
}
}
job {
id: "Android32 Builder x86"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android32 Builder x86"
}
}
job {
id: "Android32 Builder x86 (dbg)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android32 Builder x86 (dbg)"
}
}
job {
id: "Android64 (M Nexus5X)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android64 (M Nexus5X)"
}
}
job {
id: "Android64 Builder arm64"
realm: "ci"
acl_sets: "ci"
triggering_policy {
kind: GREEDY_BATCHING
max_concurrent_invocations: 3
max_batch_size: 1
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android64 Builder arm64"
}
}
job {
id: "Android64 Builder x64 (dbg)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android64 Builder x64 (dbg)"
}
}
job {
id: "Auto-roll - WebRTC DEPS"
realm: "cron"
schedule: "0 */2 * * *"
acl_sets: "cron"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "cron"
builder: "Auto-roll - WebRTC DEPS"
}
}
job {
id: "Linux (more configs)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux (more configs)"
}
}
job {
id: "Linux Asan"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux Asan"
}
}
job {
id: "Linux MSan"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux MSan"
}
}
job {
id: "Linux Tsan v2"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux Tsan v2"
}
}
job {
id: "Linux UBSan"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux UBSan"
}
}
job {
id: "Linux UBSan vptr"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux UBSan vptr"
}
}
job {
id: "Linux32 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux32 Debug"
}
}
job {
id: "Linux32 Debug (ARM)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux32 Debug (ARM)"
}
}
job {
id: "Linux32 Release"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux32 Release"
}
}
job {
id: "Linux32 Release (ARM)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux32 Release (ARM)"
}
}
job {
id: "Linux64 Builder"
realm: "ci"
acl_sets: "ci"
triggering_policy {
kind: GREEDY_BATCHING
max_concurrent_invocations: 3
max_batch_size: 1
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux64 Builder"
}
}
job {
id: "Linux64 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux64 Debug"
}
}
job {
id: "Linux64 Debug (ARM)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux64 Debug (ARM)"
}
}
job {
id: "Linux64 Release"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux64 Release"
}
}
job {
id: "Linux64 Release (ARM)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux64 Release (ARM)"
}
}
job {
id: "Linux64 Release (Libfuzzer)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux64 Release (Libfuzzer)"
}
}
job {
id: "Mac Asan"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Mac Asan"
}
}
job {
id: "Mac64 Builder"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Mac64 Builder"
}
}
job {
id: "Mac64 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Mac64 Debug"
}
}
job {
id: "Mac64 Release"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Mac64 Release"
}
}
job {
id: "MacARM64 M1 Release"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "MacARM64 M1 Release"
}
}
job {
id: "Perf Android32 (M AOSP Nexus6)"
realm: "perf"
acls {
role: TRIGGERER
granted_to: "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "perf"
triggering_policy {
kind: LOGARITHMIC_BATCHING
log_base: 1.7
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "perf"
builder: "Perf Android32 (M AOSP Nexus6)"
}
}
job {
id: "Perf Android32 (M Nexus5)"
realm: "perf"
acls {
role: TRIGGERER
granted_to: "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "perf"
triggering_policy {
kind: LOGARITHMIC_BATCHING
log_base: 1.7
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "perf"
builder: "Perf Android32 (M Nexus5)"
}
}
job {
id: "Perf Android64 (M Nexus5X)"
realm: "perf"
acls {
role: TRIGGERER
granted_to: "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "perf"
triggering_policy {
kind: LOGARITHMIC_BATCHING
log_base: 1.7
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "perf"
builder: "Perf Android64 (M Nexus5X)"
}
}
job {
id: "Perf Android64 (O Pixel2)"
realm: "perf"
acls {
role: TRIGGERER
granted_to: "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "perf"
triggering_policy {
kind: LOGARITHMIC_BATCHING
log_base: 1.7
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "perf"
builder: "Perf Android64 (O Pixel2)"
}
}
job {
id: "Perf Linux Bionic"
realm: "perf"
acls {
role: TRIGGERER
granted_to: "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "perf"
triggering_policy {
kind: LOGARITHMIC_BATCHING
log_base: 1.7
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "perf"
builder: "Perf Linux Bionic"
}
}
job {
id: "Perf Linux Trusty"
realm: "perf"
acls {
role: TRIGGERER
granted_to: "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "perf"
triggering_policy {
kind: LOGARITHMIC_BATCHING
log_base: 1.7
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "perf"
builder: "Perf Linux Trusty"
}
}
job {
id: "Perf Mac 10.11"
realm: "perf"
acls {
role: TRIGGERER
granted_to: "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "perf"
triggering_policy {
kind: LOGARITHMIC_BATCHING
log_base: 1.7
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "perf"
builder: "Perf Mac 10.11"
}
}
job {
id: "Perf Win7"
realm: "perf"
acls {
role: TRIGGERER
granted_to: "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "perf"
triggering_policy {
kind: LOGARITHMIC_BATCHING
log_base: 1.7
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "perf"
builder: "Perf Win7"
}
}
job {
id: "WebRTC lkgr finder"
realm: "cron"
schedule: "*/10 * * * *"
acl_sets: "cron"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "cron"
builder: "WebRTC lkgr finder"
}
}
job {
id: "WebRTC version update"
realm: "cron"
schedule: "0 4 * * *"
acl_sets: "cron"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "cron"
builder: "WebRTC version update"
}
}
job {
id: "Win (more configs)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win (more configs)"
}
}
job {
id: "Win32 Builder (Clang)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win32 Builder (Clang)"
}
}
job {
id: "Win32 Debug (Clang)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win32 Debug (Clang)"
}
}
job {
id: "Win32 Release (Clang)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win32 Release (Clang)"
}
}
job {
id: "Win64 ASan"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win64 ASan"
}
}
job {
id: "Win64 Debug (Clang)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win64 Debug (Clang)"
}
}
job {
id: "Win64 Release (Clang)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win64 Release (Clang)"
}
}
job {
id: "iOS API Framework Builder"
realm: "ci"
acl_sets: "ci"
triggering_policy {
kind: GREEDY_BATCHING
max_concurrent_invocations: 3
max_batch_size: 1
}
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "iOS API Framework Builder"
}
}
job {
id: "iOS64 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "iOS64 Debug"
}
}
job {
id: "iOS64 Release"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "iOS64 Release"
}
}
job {
id: "iOS64 Sim Debug (iOS 12)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "iOS64 Sim Debug (iOS 12)"
}
}
job {
id: "iOS64 Sim Debug (iOS 13)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "iOS64 Sim Debug (iOS 13)"
}
}
job {
id: "iOS64 Sim Debug (iOS 14.0)"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "iOS64 Sim Debug (iOS 14.0)"
}
}
trigger {
id: "webrtc-gitiles-trigger-main"
realm: "ci"
acl_sets: "ci"
triggers: "Android32 (M Nexus5X)"
triggers: "Android32 (M Nexus5X)(dbg)"
triggers: "Android32 (more configs)"
triggers: "Android32 Builder arm"
triggers: "Android32 Builder x86"
triggers: "Android32 Builder x86 (dbg)"
triggers: "Android64 (M Nexus5X)"
triggers: "Android64 Builder arm64"
triggers: "Android64 Builder x64 (dbg)"
triggers: "Linux (more configs)"
triggers: "Linux Asan"
triggers: "Linux MSan"
triggers: "Linux Tsan v2"
triggers: "Linux UBSan"
triggers: "Linux UBSan vptr"
triggers: "Linux32 Debug"
triggers: "Linux32 Debug (ARM)"
triggers: "Linux32 Release"
triggers: "Linux32 Release (ARM)"
triggers: "Linux64 Builder"
triggers: "Linux64 Debug"
triggers: "Linux64 Debug (ARM)"
triggers: "Linux64 Release"
triggers: "Linux64 Release (ARM)"
triggers: "Linux64 Release (Libfuzzer)"
triggers: "Mac Asan"
triggers: "Mac64 Builder"
triggers: "Mac64 Debug"
triggers: "Mac64 Release"
triggers: "MacARM64 M1 Release"
triggers: "Win (more configs)"
triggers: "Win32 Builder (Clang)"
triggers: "Win32 Debug (Clang)"
triggers: "Win32 Release (Clang)"
triggers: "Win64 ASan"
triggers: "Win64 Debug (Clang)"
triggers: "Win64 Release (Clang)"
triggers: "iOS API Framework Builder"
triggers: "iOS64 Debug"
triggers: "iOS64 Release"
triggers: "iOS64 Sim Debug (iOS 12)"
triggers: "iOS64 Sim Debug (iOS 13)"
triggers: "iOS64 Sim Debug (iOS 14.0)"
gitiles {
repo: "https://webrtc.googlesource.com/src"
refs: "regexp:refs/heads/main"
}
}
acl_sets {
name: "ci"
acls {
role: OWNER
granted_to: "group:project-webrtc-admins"
}
acls {
granted_to: "group:all"
}
}
acl_sets {
name: "cron"
acls {
role: OWNER
granted_to: "group:project-webrtc-admins"
}
acls {
granted_to: "group:all"
}
}
acl_sets {
name: "perf"
acls {
role: OWNER
granted_to: "group:project-webrtc-admins"
}
acls {
granted_to: "group:all"
}
}

15
infra/config/project.cfg Normal file
View File

@ -0,0 +1,15 @@
# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see ProjectCfg message:
# https://luci-config.appspot.com/schemas/projects:project.cfg
name: "webrtc"
access: "group:all"
lucicfg {
version: "1.30.9"
package_dir: "."
config_dir: "."
entry_point: "config.star"
experiments: "crbug.com/1182002"
}

179
infra/config/realms.cfg Normal file
View File

@ -0,0 +1,179 @@
# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see RealmsCfg message:
# https://luci-config.appspot.com/schemas/projects:realms.cfg
realms {
name: "@root"
bindings {
role: "role/buildbucket.reader"
principals: "group:all"
}
bindings {
role: "role/configs.reader"
principals: "group:all"
}
bindings {
role: "role/configs.validator"
principals: "user:webrtc-try-builder@chops-service-accounts.iam.gserviceaccount.com"
}
bindings {
role: "role/logdog.reader"
principals: "group:all"
}
bindings {
role: "role/logdog.writer"
principals: "group:luci-logdog-chromium-writers"
}
bindings {
role: "role/scheduler.owner"
principals: "group:project-webrtc-admins"
}
bindings {
role: "role/scheduler.reader"
principals: "group:all"
}
bindings {
role: "role/swarming.poolOwner"
principals: "group:project-webrtc-admins"
}
bindings {
role: "role/swarming.poolUser"
principals: "group:project-webrtc-admins"
}
bindings {
role: "role/swarming.poolViewer"
principals: "group:all"
}
bindings {
role: "role/swarming.taskServiceAccount"
principals: "user:chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
}
bindings {
role: "role/swarming.taskTriggerer"
principals: "group:project-webrtc-admins"
}
}
realms {
name: "ci"
bindings {
role: "role/buildbucket.builderServiceAccount"
principals: "user:webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
bindings {
role: "role/buildbucket.triggerer"
principals: "group:project-webrtc-ci-schedulers"
principals: "group:service-account-chromeperf"
}
bindings {
role: "role/resultdb.invocationCreator"
principals: "group:project-webrtc-ci-task-accounts"
}
}
realms {
name: "cron"
bindings {
role: "role/buildbucket.builderServiceAccount"
principals: "user:chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com"
principals: "user:webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com"
}
}
realms {
name: "perf"
bindings {
role: "role/buildbucket.builderServiceAccount"
principals: "user:webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
bindings {
role: "role/buildbucket.triggerer"
principals: "user:webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
bindings {
role: "role/swarming.taskTriggerer"
principals: "group:project-webrtc-led-users"
}
bindings {
role: "role/scheduler.triggerer"
principals: "user:webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
conditions {
restrict {
attribute: "scheduler.job.name"
values: "Perf Android32 (M AOSP Nexus6)"
values: "Perf Android32 (M Nexus5)"
values: "Perf Android64 (M Nexus5X)"
values: "Perf Android64 (O Pixel2)"
values: "Perf Linux Bionic"
values: "Perf Linux Trusty"
values: "Perf Mac 10.11"
values: "Perf Win7"
}
}
}
}
realms {
name: "pools/ci"
}
realms {
name: "pools/ci-tests"
bindings {
role: "role/swarming.poolUser"
principals: "group:project-webrtc-ci-task-accounts"
}
bindings {
role: "role/swarming.taskServiceAccount"
principals: "group:project-webrtc-ci-task-accounts"
}
}
realms {
name: "pools/cron"
bindings {
role: "role/swarming.poolUser"
principals: "project:libyuv"
}
}
realms {
name: "pools/perf"
bindings {
role: "role/swarming.poolUser"
principals: "group:project-webrtc-led-users"
}
}
realms {
name: "pools/try"
bindings {
role: "role/swarming.poolUser"
principals: "group:project-webrtc-led-users"
}
}
realms {
name: "pools/try-tests"
bindings {
role: "role/swarming.poolUser"
principals: "group:project-webrtc-try-task-accounts"
}
bindings {
role: "role/swarming.taskServiceAccount"
principals: "group:project-webrtc-try-task-accounts"
}
}
realms {
name: "try"
bindings {
role: "role/buildbucket.builderServiceAccount"
principals: "user:webrtc-try-builder@chops-service-accounts.iam.gserviceaccount.com"
}
bindings {
role: "role/buildbucket.triggerer"
principals: "group:project-webrtc-tryjob-access"
principals: "group:service-account-cq"
}
bindings {
role: "role/resultdb.invocationCreator"
principals: "group:project-webrtc-try-task-accounts"
}
bindings {
role: "role/swarming.taskTriggerer"
principals: "group:project-webrtc-led-users"
}
}