Copy infra/config branch in infra/config folder of the main branch.

Bug: chromium:1159728
Change-Id: I0af72d5ab2e7d2e134af5152fec935b1d821cdbf
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3545227
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
This commit is contained in:
Jeremy Leconte 2022-03-23 13:55:15 +01:00 committed by libyuv LUCI CQ
parent fa6da40666
commit a1a52d5364
12 changed files with 3003 additions and 0 deletions

3
infra/config/OWNERS Normal file
View File

@ -0,0 +1,3 @@
fbarchard@chromium.org
mbonadei@chromium.org
nodir@chromium.org

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

@ -0,0 +1,11 @@
# Copyright 2018 The PDFium 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 CheckChangeOnUpload(input_api, output_api):
return input_api.canned_checks.CheckChangedLUCIConfigs(input_api, output_api)
def CheckChangeOnCommit(input_api, output_api):
return input_api.canned_checks.CheckChangedLUCIConfigs(input_api, output_api)

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

@ -0,0 +1,2 @@
This folder contains libyuv project-wide configurations
for chrome-infra services.

View File

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

View File

@ -0,0 +1,143 @@
# 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: 4
burst_delay {
seconds: 480
}
}
config_groups {
name: "config"
gerrit {
url: "https://chromium-review.googlesource.com"
projects {
name: "libyuv/libyuv"
ref_regexp: "refs/heads/infra/config"
}
}
verifiers {
gerrit_cq_ability {
committer_list: "project-libyuv-committers"
dry_run_access_list: "project-libyuv-tryjob-access"
}
tryjob {
builders {
name: "libyuv/try/presubmit"
}
retry_config {
single_quota: 1
global_quota: 2
failure_weight: 1
transient_failure_weight: 1
timeout_weight: 2
}
}
}
}
config_groups {
name: "master"
gerrit {
url: "https://chromium-review.googlesource.com"
projects {
name: "libyuv/libyuv"
ref_regexp: "refs/heads/main"
ref_regexp: "refs/heads/master"
}
}
verifiers {
gerrit_cq_ability {
committer_list: "project-libyuv-committers"
dry_run_access_list: "project-libyuv-tryjob-access"
}
tryjob {
builders {
name: "libyuv/try/android"
experiment_percentage: 100
}
builders {
name: "libyuv/try/android_arm64"
experiment_percentage: 100
}
builders {
name: "libyuv/try/android_rel"
experiment_percentage: 100
}
builders {
name: "libyuv/try/android_x64"
}
builders {
name: "libyuv/try/android_x86"
}
builders {
name: "libyuv/try/ios_arm64"
}
builders {
name: "libyuv/try/ios_arm64_rel"
}
builders {
name: "libyuv/try/linux"
}
builders {
name: "libyuv/try/linux_asan"
}
builders {
name: "libyuv/try/linux_gcc"
experiment_percentage: 100
}
builders {
name: "libyuv/try/linux_msan"
}
builders {
name: "libyuv/try/linux_rel"
}
builders {
name: "libyuv/try/linux_tsan2"
}
builders {
name: "libyuv/try/linux_ubsan"
}
builders {
name: "libyuv/try/linux_ubsan_vptr"
}
builders {
name: "libyuv/try/mac"
}
builders {
name: "libyuv/try/mac_asan"
}
builders {
name: "libyuv/try/mac_rel"
}
builders {
name: "libyuv/try/win"
}
builders {
name: "libyuv/try/win_clang"
}
builders {
name: "libyuv/try/win_clang_rel"
}
builders {
name: "libyuv/try/win_rel"
}
builders {
name: "libyuv/try/win_x64_clang_rel"
}
builders {
name: "libyuv/try/win_x64_rel"
}
retry_config {
single_quota: 1
global_quota: 2
failure_weight: 1
transient_failure_weight: 1
timeout_weight: 2
}
}
}
}

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"

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

@ -0,0 +1,246 @@
# 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: "main"
name: "libyuv Main Console"
repo_url: "https://chromium.googlesource.com/libyuv/libyuv"
refs: "regexp:refs/heads/main"
manifest_name: "REVISION"
builders {
name: "buildbucket/luci.libyuv.ci/Android ARM64 Debug"
category: "Android|Builder"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Android Debug"
category: "Android|Builder"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Android Release"
category: "Android|Builder"
short_name: "rel"
}
builders {
name: "buildbucket/luci.libyuv.ci/Android32 x86 Debug"
category: "Android|Builder|x86"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Android64 x64 Debug"
category: "Android|Builder|x64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Android Tester ARM32 Debug (Nexus 5X)"
category: "Android|Tester|ARM 32"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Android Tester ARM32 Release (Nexus 5X)"
category: "Android|Tester|ARM 32"
short_name: "rel"
}
builders {
name: "buildbucket/luci.libyuv.ci/Android Tester ARM64 Debug (Nexus 5X)"
category: "Android|Tester|ARM 64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Linux Asan"
category: "Linux"
short_name: "asan"
}
builders {
name: "buildbucket/luci.libyuv.ci/Linux MSan"
category: "Linux"
short_name: "msan"
}
builders {
name: "buildbucket/luci.libyuv.ci/Linux Tsan v2"
category: "Linux"
short_name: "tsan"
}
builders {
name: "buildbucket/luci.libyuv.ci/Linux UBSan"
category: "Linux|UBSan"
}
builders {
name: "buildbucket/luci.libyuv.ci/Linux UBSan vptr"
category: "Linux|UBSan"
short_name: "vptr"
}
builders {
name: "buildbucket/luci.libyuv.ci/Linux32 Debug"
category: "Linux|32"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Linux32 Release"
category: "Linux|32"
short_name: "rel"
}
builders {
name: "buildbucket/luci.libyuv.ci/Linux64 Debug"
category: "Linux|64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Linux64 Release"
category: "Linux|64"
short_name: "rel"
}
builders {
name: "buildbucket/luci.libyuv.ci/Mac Asan"
category: "Mac"
short_name: "asan"
}
builders {
name: "buildbucket/luci.libyuv.ci/Mac64 Debug"
category: "Mac"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Mac64 Release"
category: "Mac"
short_name: "rel"
}
builders {
name: "buildbucket/luci.libyuv.ci/Win32 Debug"
category: "Win|32|Debug"
}
builders {
name: "buildbucket/luci.libyuv.ci/Win32 Debug (Clang)"
category: "Win|32|Debug"
short_name: "clg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Win32 Release"
category: "Win|32|Release"
}
builders {
name: "buildbucket/luci.libyuv.ci/Win32 Release (Clang)"
category: "Win|32|Release"
short_name: "clg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Win64 Debug"
category: "Win|64|Debug"
short_name: "clg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Win64 Debug (Clang)"
category: "Win|64|Debug"
short_name: "clg"
}
builders {
name: "buildbucket/luci.libyuv.ci/Win64 Release"
category: "Win|64|Release"
}
builders {
name: "buildbucket/luci.libyuv.ci/Win64 Release (Clang)"
category: "Win|64|Release"
short_name: "clg"
}
builders {
name: "buildbucket/luci.libyuv.ci/iOS ARM64 Debug"
category: "iOS|ARM64"
short_name: "dbg"
}
builders {
name: "buildbucket/luci.libyuv.ci/iOS ARM64 Release"
category: "iOS|ARM64"
short_name: "rel"
}
include_experimental_builds: true
}
consoles {
id: "cron"
name: "Cron"
builders {
name: "buildbucket/luci.libyuv.cron/DEPS Autoroller"
}
builder_view_only: true
}
consoles {
id: "try"
name: "libyuv Try Builders"
builders {
name: "buildbucket/luci.libyuv.try/android"
}
builders {
name: "buildbucket/luci.libyuv.try/android_arm64"
}
builders {
name: "buildbucket/luci.libyuv.try/android_rel"
}
builders {
name: "buildbucket/luci.libyuv.try/android_x64"
}
builders {
name: "buildbucket/luci.libyuv.try/android_x86"
}
builders {
name: "buildbucket/luci.libyuv.try/ios_arm64"
}
builders {
name: "buildbucket/luci.libyuv.try/ios_arm64_rel"
}
builders {
name: "buildbucket/luci.libyuv.try/linux"
}
builders {
name: "buildbucket/luci.libyuv.try/linux_asan"
}
builders {
name: "buildbucket/luci.libyuv.try/linux_gcc"
}
builders {
name: "buildbucket/luci.libyuv.try/linux_msan"
}
builders {
name: "buildbucket/luci.libyuv.try/linux_rel"
}
builders {
name: "buildbucket/luci.libyuv.try/linux_tsan2"
}
builders {
name: "buildbucket/luci.libyuv.try/linux_ubsan"
}
builders {
name: "buildbucket/luci.libyuv.try/linux_ubsan_vptr"
}
builders {
name: "buildbucket/luci.libyuv.try/mac"
}
builders {
name: "buildbucket/luci.libyuv.try/mac_asan"
}
builders {
name: "buildbucket/luci.libyuv.try/mac_rel"
}
builders {
name: "buildbucket/luci.libyuv.try/win"
}
builders {
name: "buildbucket/luci.libyuv.try/win_clang"
}
builders {
name: "buildbucket/luci.libyuv.try/win_clang_rel"
}
builders {
name: "buildbucket/luci.libyuv.try/win_rel"
}
builders {
name: "buildbucket/luci.libyuv.try/win_x64_clang_rel"
}
builders {
name: "buildbucket/luci.libyuv.try/win_x64_rel"
}
builder_view_only: true
}
logo_url: "https://storage.googleapis.com/chrome-infra-public/logo/libyuv-logo.png"

View File

@ -0,0 +1,385 @@
# 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: "Android ARM64 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android ARM64 Debug"
}
}
job {
id: "Android Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android Debug"
}
}
job {
id: "Android Release"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android Release"
}
}
job {
id: "Android Tester ARM32 Debug (Nexus 5X)"
realm: "ci"
acls {
role: TRIGGERER
granted_to: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android Tester ARM32 Debug (Nexus 5X)"
}
}
job {
id: "Android Tester ARM32 Release (Nexus 5X)"
realm: "ci"
acls {
role: TRIGGERER
granted_to: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android Tester ARM32 Release (Nexus 5X)"
}
}
job {
id: "Android Tester ARM64 Debug (Nexus 5X)"
realm: "ci"
acls {
role: TRIGGERER
granted_to: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android Tester ARM64 Debug (Nexus 5X)"
}
}
job {
id: "Android32 x86 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android32 x86 Debug"
}
}
job {
id: "Android64 x64 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Android64 x64 Debug"
}
}
job {
id: "DEPS Autoroller"
realm: "cron"
schedule: "0 14 * * *"
acl_sets: "cron"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "cron"
builder: "DEPS Autoroller"
}
}
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 Release"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux32 Release"
}
}
job {
id: "Linux64 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux64 Debug"
}
}
job {
id: "Linux64 Release"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Linux64 Release"
}
}
job {
id: "Mac Asan"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Mac Asan"
}
}
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: "Win32 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win32 Debug"
}
}
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"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win32 Release"
}
}
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 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win64 Debug"
}
}
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"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "Win64 Release"
}
}
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 ARM64 Debug"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "iOS ARM64 Debug"
}
}
job {
id: "iOS ARM64 Release"
realm: "ci"
acl_sets: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "iOS ARM64 Release"
}
}
trigger {
id: "master-gitiles-trigger"
realm: "ci"
acl_sets: "ci"
triggers: "Android ARM64 Debug"
triggers: "Android Debug"
triggers: "Android Release"
triggers: "Android32 x86 Debug"
triggers: "Android64 x64 Debug"
triggers: "Linux Asan"
triggers: "Linux MSan"
triggers: "Linux Tsan v2"
triggers: "Linux UBSan"
triggers: "Linux UBSan vptr"
triggers: "Linux32 Debug"
triggers: "Linux32 Release"
triggers: "Linux64 Debug"
triggers: "Linux64 Release"
triggers: "Mac Asan"
triggers: "Mac64 Debug"
triggers: "Mac64 Release"
triggers: "Win32 Debug"
triggers: "Win32 Debug (Clang)"
triggers: "Win32 Release"
triggers: "Win32 Release (Clang)"
triggers: "Win64 Debug"
triggers: "Win64 Debug (Clang)"
triggers: "Win64 Release"
triggers: "Win64 Release (Clang)"
triggers: "iOS ARM64 Debug"
triggers: "iOS ARM64 Release"
gitiles {
repo: "https://chromium.googlesource.com/libyuv/libyuv"
refs: "regexp:refs/heads/main"
}
}
acl_sets {
name: "ci"
acls {
role: OWNER
granted_to: "group:project-libyuv-admins"
}
acls {
granted_to: "group:all"
}
}
acl_sets {
name: "cron"
acls {
role: OWNER
granted_to: "group:project-libyuv-admins"
}
acls {
granted_to: "group:all"
}
}

361
infra/config/main.star Executable file
View File

@ -0,0 +1,361 @@
#!/usr/bin/env lucicfg
# https://chromium.googlesource.com/infra/luci/luci-go/+/master/lucicfg/doc/
"""LUCI project configuration for libyuv CQ and CI."""
lucicfg.check_version("1.30.9")
LIBYUV_GIT = "https://chromium.googlesource.com/libyuv/libyuv"
LIBYUV_GERRIT = "https://chromium-review.googlesource.com/libyuv/libyuv"
GOMA_BACKEND_RBE_PROD = {
"server_host": "goma.chromium.org",
"use_luci_auth": True,
}
GOMA_BACKEND_RBE_ATS_PROD = {
"server_host": "goma.chromium.org",
"use_luci_auth": True,
"enable_ats": True,
}
# Disable ATS on Windows CQ/try.
GOMA_BACKEND_RBE_NO_ATS_PROD = {
"server_host": "goma.chromium.org",
"use_luci_auth": True,
"enable_ats": False,
}
# 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,
},
)
lucicfg.config(
lint_checks = ["default"],
config_dir = ".",
tracked_files = [
"commit-queue.cfg",
"cr-buildbucket.cfg",
"luci-logdog.cfg",
"luci-milo.cfg",
"luci-scheduler.cfg",
"project.cfg",
"realms.cfg",
],
)
# Generates project.cfg
luci.project(
name = "libyuv",
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.PROJECT_CONFIGS_READER, groups = ["all"]),
acl.entry(acl.LOGDOG_READER, groups = ["all"]),
acl.entry(acl.LOGDOG_WRITER, groups = ["luci-logdog-chromium-writers"]),
acl.entry(acl.SCHEDULER_READER, groups = ["all"]),
acl.entry(acl.SCHEDULER_OWNER, groups = ["project-libyuv-admins"]),
acl.entry(acl.BUILDBUCKET_READER, groups = ["all"]),
acl.entry(acl.BUILDBUCKET_OWNER, groups = ["project-libyuv-admins"]),
],
bindings = [
luci.binding(
roles = "role/configs.validator",
users = "libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com",
),
],
)
# Generates luci-logdog.cfg
luci.logdog(
gs_bucket = "chromium-luci-logdog",
)
# Generates luci-scheduler.cfg
luci.gitiles_poller(
name = "master-gitiles-trigger",
bucket = "ci",
repo = LIBYUV_GIT,
)
# Generates luci-milo.cfg
luci.milo(
logo = "https://storage.googleapis.com/chrome-infra-public/logo/libyuv-logo.png",
)
def libyuv_ci_view(name, category, short_name):
return luci.console_view_entry(
console_view = "main",
builder = name,
category = category,
short_name = short_name,
)
def libyuv_try_view(name):
return luci.list_view_entry(
list_view = "try",
builder = name,
)
luci.console_view(
name = "main",
title = "libyuv Main Console",
include_experimental_builds = True,
repo = LIBYUV_GIT,
)
luci.list_view(
name = "cron",
title = "Cron",
entries = ["DEPS Autoroller"],
)
luci.list_view(
name = "try",
title = "libyuv Try Builders",
)
# Generates commit-queue.cfg
def libyuv_try_job_verifier(name, cq_group, experiment_percentage):
return luci.cq_tryjob_verifier(
builder = name,
cq_group = cq_group,
experiment_percentage = experiment_percentage,
)
luci.cq(
status_host = "chromium-cq-status.appspot.com",
submit_max_burst = 4,
submit_burst_delay = 8 * time.minute,
)
luci.cq_group(
name = "master",
watch = [
cq.refset(
repo = LIBYUV_GERRIT,
refs = ["refs/heads/main", "refs/heads/master"],
),
],
acls = [
acl.entry(acl.CQ_COMMITTER, groups = ["project-libyuv-committers"]),
acl.entry(acl.CQ_DRY_RUNNER, groups = ["project-libyuv-tryjob-access"]),
],
retry_config = cq.RETRY_ALL_FAILURES,
cancel_stale_tryjobs = True,
)
luci.cq_group(
name = "config",
watch = [
cq.refset(
repo = LIBYUV_GERRIT,
refs = ["refs/heads/infra/config"],
),
],
acls = [
acl.entry(acl.CQ_COMMITTER, groups = ["project-libyuv-committers"]),
acl.entry(acl.CQ_DRY_RUNNER, groups = ["project-libyuv-tryjob-access"]),
],
retry_config = cq.RETRY_ALL_FAILURES,
cancel_stale_tryjobs = True,
)
# Generates cr-buildbucket.cfg
luci.bucket(
name = "ci",
)
luci.bucket(
name = "try",
acls = [
acl.entry(acl.BUILDBUCKET_TRIGGERER, groups = [
"project-libyuv-tryjob-access",
"service-account-cq",
]),
],
)
luci.bucket(
name = "cron",
)
def get_os_dimensions(os):
if os == "android":
return {"device_type": "bullhead"}
if os == "ios" or os == "mac":
return {"os": "Mac-10.15", "cpu": "x86-64"}
elif os == "win":
return {"os": "Windows-10", "cores": "8", "cpu": "x86-64"}
elif os == "linux":
return {"os": "Ubuntu-18.04", "cores": "8", "cpu": "x86-64"}
return {}
def get_os_properties(os, try_builder = False):
if os == "android":
return {"$build/goma": GOMA_BACKEND_RBE_PROD}
elif os in ("ios", "mac"):
return {"$build/goma": GOMA_BACKEND_RBE_PROD}
elif os == "win" and try_builder:
return {"$build/goma": GOMA_BACKEND_RBE_NO_ATS_PROD}
elif os == "win":
return {"$build/goma": GOMA_BACKEND_RBE_ATS_PROD}
elif os == "linux":
return {"$build/goma": GOMA_BACKEND_RBE_ATS_PROD}
return {}
def libyuv_ci_builder(name, dimensions, properties, triggered_by):
return luci.builder(
name = name,
dimensions = dimensions,
properties = properties,
bucket = "ci",
service_account = "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
triggered_by = triggered_by,
swarming_tags = ["vpython:native-python-wrapper"],
execution_timeout = 180 * time.minute,
build_numbers = True,
executable = luci.recipe(
name = "libyuv/libyuv",
cipd_package = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
use_python3 = True,
),
)
def libyuv_try_builder(name, dimensions, properties, recipe_name = "libyuv/libyuv"):
return luci.builder(
name = name,
dimensions = dimensions,
properties = properties,
bucket = "try",
service_account = "libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com",
swarming_tags = ["vpython:native-python-wrapper"],
execution_timeout = 180 * time.minute,
build_numbers = True,
executable = luci.recipe(
name = recipe_name,
cipd_package = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
use_python3 = True,
),
)
def ci_builder(name, os, category, short_name = None):
dimensions = get_os_dimensions(os)
properties = get_os_properties(os)
dimensions["pool"] = "luci.flex.ci"
properties["builder_group"] = "client.libyuv"
triggered_by = ["master-gitiles-trigger" if os != "android" else "Android Debug"]
libyuv_ci_view(name, category, short_name)
return libyuv_ci_builder(name, dimensions, properties, triggered_by)
def try_builder(name, os, experiment_percentage = None):
dimensions = get_os_dimensions(os)
properties = get_os_properties(os, try_builder = True)
dimensions["pool"] = "luci.flex.try"
properties["builder_group"] = "tryserver.libyuv"
if name == "presubmit":
recipe_name = "run_presubmit"
properties["repo_name"] = "libyuv"
properties["runhooks"] = True
libyuv_try_job_verifier(name, "config", experiment_percentage)
return libyuv_try_builder(name, dimensions, properties, recipe_name)
libyuv_try_job_verifier(name, "master", experiment_percentage)
libyuv_try_view(name)
return libyuv_try_builder(name, dimensions, properties)
luci.builder(
name = "DEPS Autoroller",
bucket = "cron",
service_account = "libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com",
dimensions = {
"pool": "luci.webrtc.cron",
"os": "Linux",
"cpu": "x86-64",
},
swarming_tags = ["vpython:native-python-wrapper"],
execution_timeout = 120 * time.minute,
build_numbers = True,
schedule = "0 14 * * *", # Every 2 hours.
executable = luci.recipe(
name = "libyuv/roll_deps",
cipd_package = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
use_python3 = True,
),
)
ci_builder("Android ARM64 Debug", "linux", "Android|Builder", "dbg")
ci_builder("Android Debug", "linux", "Android|Builder", "dbg")
ci_builder("Android Release", "linux", "Android|Builder", "rel")
ci_builder("Android32 x86 Debug", "linux", "Android|Builder|x86", "dbg")
ci_builder("Android64 x64 Debug", "linux", "Android|Builder|x64", "dbg")
ci_builder("Android Tester ARM32 Debug (Nexus 5X)", "android", "Android|Tester|ARM 32", "dbg")
ci_builder("Android Tester ARM32 Release (Nexus 5X)", "android", "Android|Tester|ARM 32", "rel")
ci_builder("Android Tester ARM64 Debug (Nexus 5X)", "android", "Android|Tester|ARM 64", "dbg")
ci_builder("Linux Asan", "linux", "Linux", "asan")
ci_builder("Linux MSan", "linux", "Linux", "msan")
ci_builder("Linux Tsan v2", "linux", "Linux", "tsan")
ci_builder("Linux UBSan", "linux", "Linux|UBSan")
ci_builder("Linux UBSan vptr", "linux", "Linux|UBSan", "vptr")
ci_builder("Linux32 Debug", "linux", "Linux|32", "dbg")
ci_builder("Linux32 Release", "linux", "Linux|32", "rel")
ci_builder("Linux64 Debug", "linux", "Linux|64", "dbg")
ci_builder("Linux64 Release", "linux", "Linux|64", "rel")
ci_builder("Mac Asan", "mac", "Mac", "asan")
ci_builder("Mac64 Debug", "mac", "Mac", "dbg")
ci_builder("Mac64 Release", "mac", "Mac", "rel")
ci_builder("Win32 Debug", "win", "Win|32|Debug")
ci_builder("Win32 Debug (Clang)", "win", "Win|32|Debug", "clg")
ci_builder("Win32 Release", "win", "Win|32|Release")
ci_builder("Win32 Release (Clang)", "win", "Win|32|Release", "clg")
ci_builder("Win64 Debug", "win", "Win|64|Debug", "clg")
ci_builder("Win64 Debug (Clang)", "win", "Win|64|Debug", "clg")
ci_builder("Win64 Release", "win", "Win|64|Release")
ci_builder("Win64 Release (Clang)", "win", "Win|64|Release", "clg")
ci_builder("iOS ARM64 Debug", "ios", "iOS|ARM64", "dbg")
ci_builder("iOS ARM64 Release", "ios", "iOS|ARM64", "rel")
# TODO(crbug.com/1242847): make this not experimental.
try_builder("android", "android", experiment_percentage = 100)
try_builder("android_arm64", "android", experiment_percentage = 100)
try_builder("android_rel", "android", experiment_percentage = 100)
try_builder("android_x64", "linux")
try_builder("android_x86", "linux")
try_builder("ios_arm64", "ios")
try_builder("ios_arm64_rel", "ios")
try_builder("linux", "linux")
try_builder("linux_asan", "linux")
try_builder("linux_gcc", "linux", experiment_percentage = 100)
try_builder("linux_msan", "linux")
try_builder("linux_rel", "linux")
try_builder("linux_tsan2", "linux")
try_builder("linux_ubsan", "linux")
try_builder("linux_ubsan_vptr", "linux")
try_builder("mac", "mac")
try_builder("mac_asan", "mac")
try_builder("mac_rel", "mac")
try_builder("win", "win")
try_builder("win_clang", "win")
try_builder("win_clang_rel", "win")
try_builder("win_rel", "win")
try_builder("win_x64_clang_rel", "win")
try_builder("win_x64_rel", "win")
try_builder("presubmit", "linux")

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: "libyuv"
access: "group:all"
lucicfg {
version: "1.30.9"
package_dir: "."
config_dir: "."
entry_point: "main.star"
experiments: "crbug.com/1182002"
}

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

@ -0,0 +1,79 @@
# 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.owner"
principals: "group:project-libyuv-admins"
}
bindings {
role: "role/buildbucket.reader"
principals: "group:all"
}
bindings {
role: "role/configs.reader"
principals: "group:all"
}
bindings {
role: "role/configs.validator"
principals: "user:libyuv-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-libyuv-admins"
}
bindings {
role: "role/scheduler.reader"
principals: "group:all"
}
}
realms {
name: "ci"
bindings {
role: "role/buildbucket.builderServiceAccount"
principals: "user:libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
}
bindings {
role: "role/scheduler.triggerer"
principals: "user:libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
conditions {
restrict {
attribute: "scheduler.job.name"
values: "Android Tester ARM32 Debug (Nexus 5X)"
values: "Android Tester ARM32 Release (Nexus 5X)"
values: "Android Tester ARM64 Debug (Nexus 5X)"
}
}
}
}
realms {
name: "cron"
bindings {
role: "role/buildbucket.builderServiceAccount"
principals: "user:libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com"
}
}
realms {
name: "try"
bindings {
role: "role/buildbucket.builderServiceAccount"
principals: "user:libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com"
}
bindings {
role: "role/buildbucket.triggerer"
principals: "group:project-libyuv-tryjob-access"
principals: "group:service-account-cq"
}
}