#!/usr/bin/env lucicfg # Copyright 2021 The Crashpad Authors. All rights reserved. # # 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. luci.project( name = "crashpad", buildbucket = "cr-buildbucket.appspot.com", swarming = "chromium-swarm.appspot.com", acls = [ acl.entry( roles = [ acl.LOGDOG_READER, acl.PROJECT_CONFIGS_READER, acl.SCHEDULER_READER, acl.BUILDBUCKET_READER, ], groups = "all", ), ], ) luci.bucket( name = "ci", acls = [ acl.entry( acl.BUILDBUCKET_OWNER, groups = "project-crashpad-admins", ), acl.entry( acl.BUILDBUCKET_TRIGGERER, users = "luci-scheduler@appspot.gserviceaccount.com", ), ], ) luci.bucket( name = "try", acls = [ acl.entry( acl.BUILDBUCKET_OWNER, groups = [ "service-account-crashpad-cq", "project-crashpad-admins", ], ), acl.entry( acl.BUILDBUCKET_TRIGGERER, groups = "service-account-cq", ), acl.entry( acl.BUILDBUCKET_TRIGGERER, groups = "project-crashpad-tryjob-access", ), ], ) def crashpad_recipe(): return luci.recipe( name = "crashpad/build", cipd_package = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build", ) def crashpad_caches(platform): if platform == "ios": return [swarming.cache("osx_sdk", name = "osx_sdk_ios")] elif platform == "mac": return [swarming.cache("osx_sdk", name = "osx_sdk_mac")] def crashpad_dimensions(platform, bucket): dimensions = {} dimensions["cpu"] = "x86-64" dimensions["pool"] = "luci.flex." + bucket if platform == "fuchsia": dimensions["os"] = "Ubuntu-16.04" elif platform == "ios": dimensions["os"] = "Mac-10.15" elif platform == "linux": dimensions["os"] = "Ubuntu-16.04" elif platform == "mac": dimensions["os"] = "Mac-10.15" elif platform == "win": dimensions["os"] = "Windows-10" if platform == "fuchsia" or platform == "linux" or platform == "win": dimensions["cores"] = "8" return dimensions def crashpad_properties(platform, cpu, config, bucket): properties = {} properties["target_os"] = platform properties["$kitchen"] = { "devshell": True, "git_auth": True, } if cpu != "x64": properties["target_cpu"] = cpu if bucket == "ci": properties["$gatekeeper"] = { "group": "client.crashpad", } if config == "dbg": properties["config"] = "Debug" elif config == "rel": properties["config"] = "Release" return properties def crashpad_builder(platform, cpu, config, bucket): return luci.builder( name = "_".join(["crashpad", platform, cpu, config]), bucket = bucket, executable = crashpad_recipe(), build_numbers = True, caches = crashpad_caches(platform), dimensions = crashpad_dimensions(platform, bucket), execution_timeout = 3 * time.hour, properties = crashpad_properties(platform, cpu, config, bucket), service_account = "crashpad-" + bucket + "-builder@chops-service-accounts.iam.gserviceaccount.com", ) crashpad_builder("fuchsia", "arm64", "dbg", "ci") crashpad_builder("fuchsia", "arm64", "rel", "ci") crashpad_builder("fuchsia", "x64", "dbg", "ci") crashpad_builder("fuchsia", "x64", "rel", "ci") crashpad_builder("ios", "arm64", "dbg", "ci") crashpad_builder("ios", "arm64", "rel", "ci") crashpad_builder("ios", "x64", "dbg", "ci") crashpad_builder("ios", "x64", "rel", "ci") crashpad_builder("linux", "x64", "dbg", "ci") crashpad_builder("linux", "x64", "rel", "ci") crashpad_builder("mac", "x64", "dbg", "ci") crashpad_builder("mac", "x64", "rel", "ci") crashpad_builder("win", "x64", "dbg", "ci") crashpad_builder("win", "x64", "rel", "ci") crashpad_builder("fuchsia", "arm64", "dbg", "try") crashpad_builder("fuchsia", "arm64", "rel", "try") crashpad_builder("fuchsia", "x64", "dbg", "try") crashpad_builder("fuchsia", "x64", "rel", "try") crashpad_builder("ios", "arm64", "dbg", "try") crashpad_builder("ios", "arm64", "rel", "try") crashpad_builder("ios", "x64", "dbg", "try") crashpad_builder("ios", "x64", "rel", "try") crashpad_builder("linux", "x64", "dbg", "try") crashpad_builder("linux", "x64", "rel", "try") crashpad_builder("mac", "x64", "dbg", "try") crashpad_builder("mac", "x64", "rel", "try") crashpad_builder("win", "x64", "dbg", "try") crashpad_builder("win", "x64", "rel", "try")