111 lines
3.5 KiB
Plaintext
Executable File
111 lines
3.5 KiB
Plaintext
Executable File
#!/usr/bin/env lucicfg
|
|
# Copyright (C) 2021 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
lucicfg.check_version("1.30.9", "Please update depot_tools")
|
|
|
|
# Use LUCI Scheduler BBv2 names and add Scheduler realms configs.
|
|
lucicfg.enable_experiment("crbug.com/1182002")
|
|
|
|
# Enable bbagent.
|
|
luci.recipe.defaults.use_bbagent.set(True)
|
|
|
|
lucicfg.config(
|
|
config_dir = "generated",
|
|
fail_on_warnings = True,
|
|
)
|
|
|
|
luci.project(
|
|
name = "perfetto",
|
|
buildbucket = "cr-buildbucket.appspot.com",
|
|
logdog = "luci-logdog",
|
|
milo = "luci-milo",
|
|
scheduler = "luci-scheduler",
|
|
swarming = "chrome-swarming.appspot.com",
|
|
acls = [
|
|
acl.entry(
|
|
[
|
|
acl.BUILDBUCKET_READER,
|
|
acl.LOGDOG_READER,
|
|
acl.PROJECT_CONFIGS_READER,
|
|
acl.SCHEDULER_READER,
|
|
],
|
|
groups = ["all"],
|
|
),
|
|
acl.entry(roles = acl.SCHEDULER_OWNER, groups = "mdb/perfetto-cloud-infra"),
|
|
acl.entry([acl.LOGDOG_WRITER], groups = ["luci-logdog-chromium-writers"]),
|
|
],
|
|
)
|
|
|
|
# Use the default Chromium logdog instance as:
|
|
# a) we expect our logs to be very minimal
|
|
# b) we are open source so there's nothing special in our logs.
|
|
luci.logdog(
|
|
gs_bucket = "chromium-luci-logdog",
|
|
)
|
|
|
|
# Create a realm for the official pool.
|
|
# Used by LUCI infra (Googlers: see pools.cfg) to enforce ACLs.
|
|
luci.realm(name = "pools/official")
|
|
|
|
# Bucket used by all official builders.
|
|
luci.bucket(
|
|
name = "official",
|
|
acls = [
|
|
acl.entry(
|
|
roles = [acl.BUILDBUCKET_TRIGGERER],
|
|
groups = ["mdb/perfetto-cloud-infra"],
|
|
),
|
|
acl.entry(
|
|
roles = [acl.SCHEDULER_TRIGGERER, acl.BUILDBUCKET_TRIGGERER],
|
|
groups = ["mdb/chrome-troopers"],
|
|
),
|
|
],
|
|
)
|
|
|
|
def official_builder(name, os, caches=[]):
|
|
luci.builder(
|
|
name = name,
|
|
bucket = "official",
|
|
executable = luci.recipe(
|
|
name = "perfetto",
|
|
cipd_package = "infra/recipe_bundles/android.googlesource.com/platform/external/perfetto",
|
|
cipd_version = "refs/heads/master",
|
|
use_python3 = True,
|
|
),
|
|
dimensions = {
|
|
"pool": "luci.perfetto.official",
|
|
"os": os,
|
|
"cpu": "x86-64",
|
|
},
|
|
service_account = "perfetto-luci-official-builder@chops-service-accounts.iam.gserviceaccount.com",
|
|
triggered_by = [
|
|
luci.gitiles_poller(
|
|
name = "perfetto-gitiles-trigger",
|
|
bucket = "official",
|
|
repo = "https://android.googlesource.com/platform/external/perfetto",
|
|
refs = ["refs/tags/v.+"],
|
|
),
|
|
],
|
|
caches = [
|
|
swarming.cache(cache, name = cache)
|
|
for cache in caches
|
|
]
|
|
)
|
|
|
|
official_builder("perfetto-official-builder-linux", "Linux")
|
|
official_builder("perfetto-official-builder-mac", "Mac", ["macos_sdk"])
|
|
official_builder("perfetto-official-builder-windows", "Windows", ["windows_sdk"])
|
|
official_builder("perfetto-official-builder-android", "Linux")
|