Add Dawn DEPS branched trybots

Sets the Chromium Dawn DEPS builders to be available as
branched trybots.

Bug: chromium:1432491
Change-Id: I319e76c3c0fc7d2bc168c0fdd6c07eebd8165046
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132272
Commit-Queue: Brian Sheedy <bsheedy@google.com>
Kokoro: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@google.com>
This commit is contained in:
Brian Sheedy 2023-05-11 17:57:49 +00:00 committed by Dawn LUCI CQ
parent 096ce5936a
commit 760036cf4a
5 changed files with 351 additions and 28 deletions

View File

@ -18,6 +18,9 @@ config_groups {
projects {
name: "dawn"
ref_regexp: "refs/heads/.+"
ref_regexp_exclude: "refs/heads/chromium/5615"
ref_regexp_exclude: "refs/heads/chromium/5672"
ref_regexp_exclude: "refs/heads/chromium/5735"
}
}
verifiers {
@ -89,3 +92,237 @@ config_groups {
}
}
}
config_groups {
name: "Dawn-CQ-m112"
gerrit {
url: "https://dawn-review.googlesource.com"
projects {
name: "dawn"
ref_regexp: "refs/heads/chromium/5615"
}
}
verifiers {
gerrit_cq_ability {
committer_list: "project-dawn-committers"
dry_run_access_list: "project-dawn-tryjob-access"
}
tryjob {
builders {
name: "chromium-m112/try/dawn-linux-x64-deps-rel"
}
builders {
name: "chromium-m112/try/dawn-mac-x64-deps-rel"
}
builders {
name: "chromium-m112/try/dawn-win10-x64-deps-rel"
}
builders {
name: "chromium-m112/try/dawn-win10-x86-deps-rel"
includable_only: true
}
builders {
name: "dawn/try/linux-clang-dbg-x64"
}
builders {
name: "dawn/try/linux-clang-dbg-x86"
}
builders {
name: "dawn/try/linux-clang-rel-x64"
}
builders {
name: "dawn/try/linux-clang-rel-x86"
}
builders {
name: "dawn/try/mac-dbg"
}
builders {
name: "dawn/try/mac-rel"
}
builders {
name: "dawn/try/presubmit"
disable_reuse: true
}
builders {
name: "dawn/try/win-clang-dbg-x64"
}
builders {
name: "dawn/try/win-clang-dbg-x86"
}
builders {
name: "dawn/try/win-clang-rel-x64"
}
builders {
name: "dawn/try/win-clang-rel-x86"
}
builders {
name: "dawn/try/win-msvc-dbg-x64"
}
builders {
name: "dawn/try/win-msvc-rel-x64"
}
retry_config {
single_quota: 1
global_quota: 2
failure_weight: 1
transient_failure_weight: 1
timeout_weight: 2
}
}
}
}
config_groups {
name: "Dawn-CQ-m113"
gerrit {
url: "https://dawn-review.googlesource.com"
projects {
name: "dawn"
ref_regexp: "refs/heads/chromium/5672"
}
}
verifiers {
gerrit_cq_ability {
committer_list: "project-dawn-committers"
dry_run_access_list: "project-dawn-tryjob-access"
}
tryjob {
builders {
name: "chromium-m113/try/dawn-linux-x64-deps-rel"
}
builders {
name: "chromium-m113/try/dawn-mac-x64-deps-rel"
}
builders {
name: "chromium-m113/try/dawn-win10-x64-deps-rel"
}
builders {
name: "chromium-m113/try/dawn-win10-x86-deps-rel"
includable_only: true
}
builders {
name: "dawn/try/linux-clang-dbg-x64"
}
builders {
name: "dawn/try/linux-clang-dbg-x86"
}
builders {
name: "dawn/try/linux-clang-rel-x64"
}
builders {
name: "dawn/try/linux-clang-rel-x86"
}
builders {
name: "dawn/try/mac-dbg"
}
builders {
name: "dawn/try/mac-rel"
}
builders {
name: "dawn/try/presubmit"
disable_reuse: true
}
builders {
name: "dawn/try/win-clang-dbg-x64"
}
builders {
name: "dawn/try/win-clang-dbg-x86"
}
builders {
name: "dawn/try/win-clang-rel-x64"
}
builders {
name: "dawn/try/win-clang-rel-x86"
}
builders {
name: "dawn/try/win-msvc-dbg-x64"
}
builders {
name: "dawn/try/win-msvc-rel-x64"
}
retry_config {
single_quota: 1
global_quota: 2
failure_weight: 1
transient_failure_weight: 1
timeout_weight: 2
}
}
}
}
config_groups {
name: "Dawn-CQ-m114"
gerrit {
url: "https://dawn-review.googlesource.com"
projects {
name: "dawn"
ref_regexp: "refs/heads/chromium/5735"
}
}
verifiers {
gerrit_cq_ability {
committer_list: "project-dawn-committers"
dry_run_access_list: "project-dawn-tryjob-access"
}
tryjob {
builders {
name: "chromium-m114/try/dawn-linux-x64-deps-rel"
}
builders {
name: "chromium-m114/try/dawn-mac-x64-deps-rel"
}
builders {
name: "chromium-m114/try/dawn-win10-x64-deps-rel"
}
builders {
name: "chromium-m114/try/dawn-win10-x86-deps-rel"
includable_only: true
}
builders {
name: "dawn/try/linux-clang-dbg-x64"
}
builders {
name: "dawn/try/linux-clang-dbg-x86"
}
builders {
name: "dawn/try/linux-clang-rel-x64"
}
builders {
name: "dawn/try/linux-clang-rel-x86"
}
builders {
name: "dawn/try/mac-dbg"
}
builders {
name: "dawn/try/mac-rel"
}
builders {
name: "dawn/try/presubmit"
disable_reuse: true
}
builders {
name: "dawn/try/win-clang-dbg-x64"
}
builders {
name: "dawn/try/win-clang-dbg-x86"
}
builders {
name: "dawn/try/win-clang-rel-x64"
}
builders {
name: "dawn/try/win-clang-rel-x86"
}
builders {
name: "dawn/try/win-msvc-dbg-x64"
}
builders {
name: "dawn/try/win-msvc-rel-x64"
}
retry_config {
single_quota: 1
global_quota: 2
failure_weight: 1
transient_failure_weight: 1
timeout_weight: 2
}
}
}
}

View File

@ -7,7 +7,7 @@
name: "dawn"
access: "group:all"
lucicfg {
version: "1.31.3"
version: "1.39.8"
package_dir: ".."
config_dir: "generated"
entry_point: "main.star"

View File

@ -8,6 +8,8 @@
main.star: lucicfg configuration for Dawn's standalone builers.
"""
load("//project.star", "ACTIVE_MILESTONES")
# Use LUCI Scheduler BBv2 names and add Scheduler realms configs.
lucicfg.enable_experiment("crbug.com/1182002")
@ -348,6 +350,29 @@ def dawn_standalone_builder(name, clang, debug, cpu, fuzzer = False):
cq_group = "Dawn-CQ",
builder = "dawn:try/" + name,
)
# These builders run fine unbranched on branch CLs, so add them to the
# branch groups as well.
for milestone in ACTIVE_MILESTONES.keys():
luci.cq_tryjob_verifier(
cq_group = "Dawn-CQ-" + milestone,
builder = "dawn:try/" + name,
)
def _add_branch_verifiers(builder_name, includable_only = False):
for milestone, details in ACTIVE_MILESTONES.items():
luci.cq_tryjob_verifier(
cq_group = "Dawn-CQ-" + milestone,
builder = "{}:try/{}".format(details.chromium_project, builder_name),
includable_only = includable_only,
)
# We use the DEPS version for branches because ToT builders do not make sense on
# branches and the DEPS versions already exist.
_os_to_branch_builder = {
"linux": "dawn-linux-x64-deps-rel",
"mac": "dawn-mac-x64-deps-rel",
"win": "dawn-win10-x64-deps-rel",
}
def chromium_dawn_tryjob(os):
"""Adds a tryjob that tests against Chromium
@ -355,10 +380,12 @@ def chromium_dawn_tryjob(os):
Args:
os: string for the OS, should be one or linux|mac|win
"""
luci.cq_tryjob_verifier(
cq_group = "Dawn-CQ",
builder = "chromium:try/" + os + "-dawn-rel",
)
_add_branch_verifiers(_os_to_branch_builder[os])
luci.gitiles_poller(
name = "primary-poller",
@ -417,6 +444,7 @@ luci.cq_tryjob_verifier(
builder = "chromium:try/dawn-try-win10-x86-rel",
includable_only = True,
)
_add_branch_verifiers("dawn-win10-x86-deps-rel", includable_only = True)
# Views
@ -444,33 +472,49 @@ luci.cq(
submit_burst_delay = 480 * time.second,
)
luci.cq_group(
name = "Dawn-CQ",
watch = cq.refset(
"https://dawn.googlesource.com/dawn",
refs = ["refs/heads/.+"],
),
acls = [
acl.entry(
acl.CQ_COMMITTER,
groups = "project-dawn-committers",
def _create_dawn_cq_group(name, refs, refs_exclude = None):
luci.cq_group(
name = name,
watch = cq.refset(
"https://dawn.googlesource.com/dawn",
refs = refs,
refs_exclude = refs_exclude,
),
acl.entry(
acl.CQ_DRY_RUNNER,
groups = "project-dawn-tryjob-access",
acls = [
acl.entry(
acl.CQ_COMMITTER,
groups = "project-dawn-committers",
),
acl.entry(
acl.CQ_DRY_RUNNER,
groups = "project-dawn-tryjob-access",
),
],
verifiers = [
luci.cq_tryjob_verifier(
builder = "dawn:try/presubmit",
disable_reuse = True,
),
],
retry_config = cq.retry_config(
single_quota = 1,
global_quota = 2,
failure_weight = 1,
transient_failure_weight = 1,
timeout_weight = 2,
),
],
verifiers = [
luci.cq_tryjob_verifier(
builder = "dawn:try/presubmit",
disable_reuse = True,
),
],
retry_config = cq.retry_config(
single_quota = 1,
global_quota = 2,
failure_weight = 1,
transient_failure_weight = 1,
timeout_weight = 2,
),
)
def _create_branch_groups():
for milestone, details in ACTIVE_MILESTONES.items():
_create_dawn_cq_group(
"Dawn-CQ-" + milestone,
[details.ref],
)
_create_dawn_cq_group(
"Dawn-CQ",
["refs/heads/.+"],
[details.ref for details in ACTIVE_MILESTONES.values()],
)
_create_branch_groups()

View File

@ -0,0 +1,17 @@
{
"112": {
"name": "m112",
"chromium_project": "chromium-m112",
"ref": "refs/heads/chromium/5615"
},
"113": {
"name": "m113",
"chromium_project": "chromium-m113",
"ref": "refs/heads/chromium/5672"
},
"114": {
"name": "m114",
"chromium_project": "chromium-m114",
"ref": "refs/heads/chromium/5735"
}
}

View File

@ -0,0 +1,25 @@
#
# Copyright 2023 The Dawn Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
def _milestone_details(*, chromium_project, ref):
"""Define the details for an active milestone.
Args:
* chromium_project - The name of the LUCI project that is configured for the
milestone.
* ref - The ref in the Dawn git repository that contains the code for the
milestone.
"""
return struct(
chromium_project = chromium_project,
ref = ref,
)
ACTIVE_MILESTONES = {
m["name"]: _milestone_details(
chromium_project = m["chromium_project"], ref = m["ref"])
for m in json.decode(io.read_file("./milestones.json")).values()
}