Commit 5910f59a authored by Garrett Beaty's avatar Garrett Beaty Committed by Commit Bot

Add branched versions of try builders.

Bug: 922150
Change-Id: Ifa61fe692a698e7233b5d10576ae0097b038ccc9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1912501
Commit-Queue: Garrett Beaty <gbeaty@chromium.org>
Auto-Submit: Garrett Beaty <gbeaty@chromium.org>
Reviewed-by: default avatarAaron Gable <agable@chromium.org>
Cr-Commit-Position: refs/heads/master@{#715734}
parent aeab45ba
load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os')
luci.bucket(
name = 'try',
acls = [
acl.entry(
roles = acl.BUILDBUCKET_READER,
groups = 'all',
),
acl.entry(
roles = acl.BUILDBUCKET_TRIGGERER,
users = [
'findit-for-me@appspot.gserviceaccount.com',
'tricium-prod@appspot.gserviceaccount.com',
],
groups = [
'project-chromium-tryjob-access',
# Allow Pinpoint to trigger builds for bisection
'service-account-chromeperf',
'service-account-cq',
],
),
acl.entry(
roles = acl.BUILDBUCKET_OWNER,
groups = 'service-account-chromium-tryserver',
),
],
)
luci.cq_group(
name = 'cq',
# TODO(crbug/959436): enable it.
cancel_stale_tryjobs = False,
retry_config = cq.RETRY_ALL_FAILURES,
tree_status_host = 'chromium-status.appspot.com/',
watch = cq.refset(
repo = 'https://chromium.googlesource.com/chromium/src',
refs = ['refs/heads/.+'],
),
acls = [
acl.entry(
acl.CQ_COMMITTER,
groups = 'project-chromium-committers',
),
acl.entry(
acl.CQ_DRY_RUNNER,
groups = 'project-chromium-tryjob-access',
),
],
)
# TODO(https://crbug.com/922150) Configure branch CQ in versioned files
luci.cq_group(
name = 'cq-branches',
cancel_stale_tryjobs = False,
retry_config = cq.RETRY_ALL_FAILURES,
tree_status_host = 'chromium-status.appspot.com/',
watch = cq.refset(
repo = 'https://chromium.googlesource.com/chromium/src',
refs = ['refs/branch-heads/.+'],
),
acls = [
acl.entry(
acl.CQ_COMMITTER,
groups = 'project-chromium-committers',
),
acl.entry(
acl.CQ_DRY_RUNNER,
groups = 'project-chromium-tryjob-access',
),
],
verifiers = [
luci.cq_tryjob_verifier(
builder = builder,
experiment_percentage = 100,
) for builder in [
'linux-rel',
]
],
)
# Defaults that apply to all branch versions of the bucket
luci.recipe.defaults.cipd_package.set('infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build')
defaults.bucket.set('try')
defaults.build_numbers.set(True)
defaults.configure_kitchen.set(True)
defaults.cores.set(8)
......@@ -139,6 +59,17 @@ def try_builder(
)
# Execute the versioned files to define all of the per-branch entities
# (bucket, builders, console, cq_group, etc.)
exec('//versioned/branches/beta/buckets/try.star')
exec('//versioned/branches/stable/buckets/try.star')
exec('//versioned/trunk/buckets/try.star')
# *** After this point everything is trunk only ***
defaults.bucket.set('try')
# 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
......@@ -1283,14 +1214,6 @@ linux_builder(
tryjob = tryjob(),
)
linux_builder(
name = 'linux-rel',
goma_backend = goma.backend.RBE_PROD,
goma_jobs = goma.jobs.J150,
tryjob = tryjob(),
use_clang_coverage = True,
)
linux_builder(
name = 'linux-trusty-rel',
goma_backend = goma.backend.RBE_PROD,
......
luci.list_view(
name = 'try-beta',
entries = [
'try-beta/linux-rel',
],
)
luci.list_view(
name = 'try-stable',
entries = [
'try-stable/linux-rel',
],
)
......@@ -369,7 +369,7 @@ config_groups: <
url: "https://chromium-review.googlesource.com"
projects: <
name: "chromium/src"
ref_regexp: "refs/branch-heads/.+"
ref_regexp: "refs/branch-heads/3945"
>
>
verifiers: <
......@@ -382,7 +382,39 @@ config_groups: <
>
tryjob: <
builders: <
name: "chromium/try/linux-rel"
name: "chromium/try-beta/linux-rel"
experiment_percentage: 100
>
retry_config: <
single_quota: 1
global_quota: 2
failure_weight: 1
transient_failure_weight: 1
timeout_weight: 2
>
cancel_stale_tryjobs: NO
>
>
>
config_groups: <
gerrit: <
url: "https://chromium-review.googlesource.com"
projects: <
name: "chromium/src"
ref_regexp: "refs/branch-heads/3904"
>
>
verifiers: <
gerrit_cq_ability: <
committer_list: "project-chromium-committers"
dry_run_access_list: "project-chromium-tryjob-access"
>
tree_status: <
url: "https://chromium-status.appspot.com/"
>
tryjob: <
builders: <
name: "chromium/try-stable/linux-rel"
experiment_percentage: 100
>
retry_config: <
......
......@@ -14519,6 +14519,7 @@ buckets: <
name: "chromium_trybot"
cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
cipd_version: "refs/heads/master"
properties_j: "$build/chromium_tests:{\"bucketed_triggers\":true}"
properties_j: "$build/code_coverage:{\"use_clang_coverage\":true}"
properties_j: "$build/goma:{\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"}"
properties_j: "$kitchen:{\"devshell\":true,\"git_auth\":true}"
......@@ -16947,6 +16948,132 @@ buckets: <
>
>
>
buckets: <
name: "try-beta"
acls: <
role: WRITER
group: "service-account-chromium-tryserver"
>
acls: <
group: "all"
>
acls: <
role: SCHEDULER
identity: "user:findit-for-me@appspot.gserviceaccount.com"
>
acls: <
role: SCHEDULER
identity: "user:tricium-prod@appspot.gserviceaccount.com"
>
acls: <
role: SCHEDULER
group: "project-chromium-tryjob-access"
>
acls: <
role: SCHEDULER
group: "service-account-chromeperf"
>
acls: <
role: SCHEDULER
group: "service-account-cq"
>
swarming: <
builders: <
name: "linux-rel"
swarming_host: "chromium-swarm.appspot.com"
swarming_tags: "vpython:native-python-wrapper"
dimensions: "builderless:1"
dimensions: "cores:8"
dimensions: "cpu:x86-64"
dimensions: "os:Ubuntu-16.04"
dimensions: "ssd:0"
recipe: <
name: "chromium_trybot"
cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
cipd_version: "refs/heads/master"
properties_j: "$build/chromium_tests:{\"bucketed_triggers\":true}"
properties_j: "$build/code_coverage:{\"use_clang_coverage\":true}"
properties_j: "$build/goma:{\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"}"
properties_j: "$kitchen:{\"devshell\":true,\"git_auth\":true}"
properties_j: "mastername:\"tryserver.chromium.linux\""
>
execution_timeout_secs: 14400
expiration_secs: 7200
caches: <
name: "win_toolchain"
path: "win_toolchain"
>
build_numbers: YES
service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
task_template_canary_percentage: <
value: 5
>
>
>
>
buckets: <
name: "try-stable"
acls: <
role: WRITER
group: "service-account-chromium-tryserver"
>
acls: <
group: "all"
>
acls: <
role: SCHEDULER
identity: "user:findit-for-me@appspot.gserviceaccount.com"
>
acls: <
role: SCHEDULER
identity: "user:tricium-prod@appspot.gserviceaccount.com"
>
acls: <
role: SCHEDULER
group: "project-chromium-tryjob-access"
>
acls: <
role: SCHEDULER
group: "service-account-chromeperf"
>
acls: <
role: SCHEDULER
group: "service-account-cq"
>
swarming: <
builders: <
name: "linux-rel"
swarming_host: "chromium-swarm.appspot.com"
swarming_tags: "vpython:native-python-wrapper"
dimensions: "builderless:1"
dimensions: "cores:8"
dimensions: "cpu:x86-64"
dimensions: "os:Ubuntu-16.04"
dimensions: "ssd:0"
recipe: <
name: "chromium_trybot"
cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
cipd_version: "refs/heads/master"
properties_j: "$build/chromium_tests:{\"bucketed_triggers\":true}"
properties_j: "$build/code_coverage:{\"use_clang_coverage\":true}"
properties_j: "$build/goma:{\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"}"
properties_j: "$kitchen:{\"devshell\":true,\"git_auth\":true}"
properties_j: "mastername:\"tryserver.chromium.linux\""
>
execution_timeout_secs: 14400
expiration_secs: 7200
caches: <
name: "win_toolchain"
path: "win_toolchain"
>
build_numbers: YES
service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
task_template_canary_percentage: <
value: 5
>
>
>
>
buckets: <
name: "webrtc"
acls: <
......
......@@ -11468,6 +11468,22 @@ consoles: <
tree_status_host: "chromium-status.appspot.com"
>
>
consoles: <
id: "try-beta"
name: "try-beta"
builders: <
name: "buildbucket/luci.chromium.try-beta/linux-rel"
>
builder_view_only: true
>
consoles: <
id: "try-stable"
name: "try-stable"
builders: <
name: "buildbucket/luci.chromium.try-stable/linux-rel"
>
builder_view_only: true
>
consoles: <
id: "tryserver.blink"
name: "tryserver.blink"
......
def var(*, default):
var = lucicfg.var(default = default)
def builder(builder):
return '{}/{}'.format(var.get(), builder)
return struct(
builder = builder,
get = var.get,
set = var.set,
)
......@@ -110,6 +110,8 @@ exec('//consoles/main.star')
exec('//consoles/main-beta.star')
exec('//consoles/main-stable.star')
exec('//consoles/sheriff.ios.star')
exec('//consoles/try-beta.star')
exec('//consoles/try-stable.star')
exec('//consoles/tryserver.blink.star')
exec('//consoles/tryserver.chromium.android.star')
exec('//consoles/tryserver.chromium.chromiumos.star')
......
load('//versioned/vars/try.star', 'vars')
vars.bucket.set('try-beta')
vars.cq_group.set('cq-beta')
vars.experiment_percentage.set(100)
load('//versioned/milestones.star', milestone='beta')
exec('//versioned/milestones/%s/buckets/try.star' % milestone)
load('//versioned/vars/try.star', 'vars')
vars.bucket.set('try-stable')
vars.cq_group.set('cq-stable')
vars.experiment_percentage.set(100)
load('//versioned/milestones.star', milestone='stable')
exec('//versioned/milestones/%s/buckets/try.star' % milestone)
load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os')
load('//versioned/vars/try.star', 'vars')
# Load this using relative path so that the load statement doesn't
# need to be changed when making a new milestone
load('../vars.star', milestone_vars='vars')
luci.bucket(
name = vars.bucket.get(),
acls = [
acl.entry(
roles = acl.BUILDBUCKET_READER,
groups = 'all',
),
acl.entry(
roles = acl.BUILDBUCKET_TRIGGERER,
users = [
'findit-for-me@appspot.gserviceaccount.com',
'tricium-prod@appspot.gserviceaccount.com',
],
groups = [
'project-chromium-tryjob-access',
# Allow Pinpoint to trigger builds for bisection
'service-account-chromeperf',
'service-account-cq',
],
),
acl.entry(
roles = acl.BUILDBUCKET_OWNER,
groups = 'service-account-chromium-tryserver',
),
],
)
luci.cq_group(
name = vars.cq_group.get(),
# TODO(crbug/959436): enable it.
cancel_stale_tryjobs = False,
retry_config = cq.RETRY_ALL_FAILURES,
tree_status_host = 'chromium-status.appspot.com/',
watch = cq.refset(
repo = 'https://chromium.googlesource.com/chromium/src',
refs = [milestone_vars.cq_ref_regexp],
),
acls = [
acl.entry(
acl.CQ_COMMITTER,
groups = 'project-chromium-committers',
),
acl.entry(
acl.CQ_DRY_RUNNER,
groups = 'project-chromium-tryjob-access',
),
],
)
defaults.bucket.set(vars.bucket.get())
defaults.bucketed_triggers.set(True)
def tryjob(
*,
disable_reuse=None,
experiment_percentage=vars.experiment_percentage.get(),
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,
)
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 linux_builder(*, name, **kwargs):
return try_builder(
name = name,
mastername = 'tryserver.chromium.linux',
**kwargs
)
linux_builder(
name = 'linux-rel',
goma_backend = goma.backend.RBE_PROD,
goma_jobs = goma.jobs.J150,
tryjob = tryjob(),
use_clang_coverage = True,
)
vars = struct(
ref = 'refs/branch-heads/3904',
cq_ref_regexp = 'refs/branch-heads/3904',
)
load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os')
load('//versioned/vars/try.star', 'vars')
# Load this using relative path so that the load statement doesn't
# need to be changed when making a new milestone
load('../vars.star', milestone_vars='vars')
luci.bucket(
name = vars.bucket.get(),
acls = [
acl.entry(
roles = acl.BUILDBUCKET_READER,
groups = 'all',
),
acl.entry(
roles = acl.BUILDBUCKET_TRIGGERER,
users = [
'findit-for-me@appspot.gserviceaccount.com',
'tricium-prod@appspot.gserviceaccount.com',
],
groups = [
'project-chromium-tryjob-access',
# Allow Pinpoint to trigger builds for bisection
'service-account-chromeperf',
'service-account-cq',
],
),
acl.entry(
roles = acl.BUILDBUCKET_OWNER,
groups = 'service-account-chromium-tryserver',
),
],
)
luci.cq_group(
name = vars.cq_group.get(),
# TODO(crbug/959436): enable it.
cancel_stale_tryjobs = False,
retry_config = cq.RETRY_ALL_FAILURES,
tree_status_host = 'chromium-status.appspot.com/',
watch = cq.refset(
repo = 'https://chromium.googlesource.com/chromium/src',
refs = [milestone_vars.cq_ref_regexp],
),
acls = [
acl.entry(
acl.CQ_COMMITTER,
groups = 'project-chromium-committers',
),
acl.entry(
acl.CQ_DRY_RUNNER,
groups = 'project-chromium-tryjob-access',
),
],
)
defaults.bucket.set(vars.bucket.get())
defaults.bucketed_triggers.set(True)
def tryjob(
*,
disable_reuse=None,
experiment_percentage=vars.experiment_percentage.get(),
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,
)
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 linux_builder(*, name, **kwargs):
return try_builder(
name = name,
mastername = 'tryserver.chromium.linux',
**kwargs
)
linux_builder(
name = 'linux-rel',
goma_backend = goma.backend.RBE_PROD,
goma_jobs = goma.jobs.J150,
tryjob = tryjob(),
use_clang_coverage = True,
)
vars = struct(
ref = 'refs/branch-heads/3945',
cq_ref_regexp = 'refs/branch-heads/3945',
)
load('//lib/builders.star', 'builder', 'cpu', 'defaults', 'goma', 'os')
load('//versioned/vars/try.star', 'vars')
# Load this using relative path so that the load statement doesn't
# need to be changed when making a new milestone
load('../vars.star', milestone_vars='vars')
luci.bucket(
name = vars.bucket.get(),
acls = [
acl.entry(
roles = acl.BUILDBUCKET_READER,
groups = 'all',
),
acl.entry(
roles = acl.BUILDBUCKET_TRIGGERER,
users = [
'findit-for-me@appspot.gserviceaccount.com',
'tricium-prod@appspot.gserviceaccount.com',
],
groups = [
'project-chromium-tryjob-access',
# Allow Pinpoint to trigger builds for bisection
'service-account-chromeperf',
'service-account-cq',
],
),
acl.entry(
roles = acl.BUILDBUCKET_OWNER,
groups = 'service-account-chromium-tryserver',
),
],
)
luci.cq_group(
name = vars.cq_group.get(),
# TODO(crbug/959436): enable it.
cancel_stale_tryjobs = False,
retry_config = cq.RETRY_ALL_FAILURES,
tree_status_host = 'chromium-status.appspot.com/',
watch = cq.refset(
repo = 'https://chromium.googlesource.com/chromium/src',
refs = [milestone_vars.cq_ref_regexp],
),
acls = [
acl.entry(
acl.CQ_COMMITTER,
groups = 'project-chromium-committers',
),
acl.entry(
acl.CQ_DRY_RUNNER,
groups = 'project-chromium-tryjob-access',
),
],
)
defaults.bucket.set(vars.bucket.get())
defaults.bucketed_triggers.set(True)
def tryjob(
*,
disable_reuse=None,
experiment_percentage=vars.experiment_percentage.get(),
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,
)
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 linux_builder(*, name, **kwargs):
return try_builder(
name = name,
mastername = 'tryserver.chromium.linux',
**kwargs
)
linux_builder(
name = 'linux-rel',
goma_backend = goma.backend.RBE_PROD,
goma_jobs = goma.jobs.J150,
tryjob = tryjob(),
use_clang_coverage = True,
)
vars = struct(
ref = 'refs/heads/master',
cq_ref_regexp = 'refs/heads/.+'
)
load('//lib/bucket.star', bucket_var='var')
vars = struct(
bucket = bucket_var(default = 'try'),
cq_group = lucicfg.var(default = 'cq'),
experiment_percentage = lucicfg.var(),
)
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