summaryrefslogtreecommitdiff
path: root/chromium/infra/config/main.star
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/infra/config/main.star')
-rwxr-xr-xchromium/infra/config/main.star123
1 files changed, 81 insertions, 42 deletions
diff --git a/chromium/infra/config/main.star b/chromium/infra/config/main.star
index b2898681118..1f057cfcb38 100755
--- a/chromium/infra/config/main.star
+++ b/chromium/infra/config/main.star
@@ -6,49 +6,63 @@
# See https://chromium.googlesource.com/infra/luci/luci-go/+/HEAD/lucicfg/doc/README.md
# for information on starlark/lucicfg
-load('//project.star', 'master_only_exec')
+load("//lib/branches.star", "branches")
+load("//project.star", "settings")
lucicfg.check_version(
- min = '1.15.1',
- message = 'Update depot_tools',
+ min = "1.18.4",
+ message = "Update depot_tools",
)
# Enable LUCI Realms support.
-lucicfg.enable_experiment('crbug.com/1085650')
+lucicfg.enable_experiment("crbug.com/1085650")
+
+# Enable tree closing.
+lucicfg.enable_experiment("crbug.com/1054172")
# Tell lucicfg what files it is allowed to touch
lucicfg.config(
- config_dir = 'generated',
+ config_dir = "generated",
tracked_files = [
- 'commit-queue.cfg',
- 'cq-builders.md',
- 'cr-buildbucket.cfg',
- 'luci-logdog.cfg',
- 'luci-milo.cfg',
- 'luci-notify.cfg',
- 'luci-scheduler.cfg',
- 'project.cfg',
- 'project.pyl',
- 'realms.cfg',
- 'tricium-prod.cfg',
+ "commit-queue.cfg",
+ "cq-builders.md",
+ "cr-buildbucket.cfg",
+ "luci-logdog.cfg",
+ "luci-milo.cfg",
+ "luci-notify.cfg",
+ "luci-notify/email-templates/*.template",
+ "luci-scheduler.cfg",
+ "project.cfg",
+ "project.pyl",
+ "realms.cfg",
+ "tricium-prod.cfg",
],
fail_on_warnings = True,
+ lint_checks = [
+ "default",
+ "-confusing-name",
+ "-function-docstring",
+ "-function-docstring-args",
+ "-function-docstring-return",
+ "-function-docstring-header",
+ "-module-docstring",
+ ],
)
# Just copy tricium-prod.cfg to the generated outputs
lucicfg.emit(
- dest = 'tricium-prod.cfg',
- data = io.read_file('tricium-prod.cfg'),
+ dest = "tricium-prod.cfg",
+ data = io.read_file("tricium-prod.cfg"),
)
luci.project(
- name = 'chromium',
- 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',
+ name = settings.project,
+ 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(
roles = [
@@ -56,15 +70,15 @@ luci.project(
acl.PROJECT_CONFIGS_READER,
acl.SCHEDULER_READER,
],
- groups = 'all',
+ groups = "all",
),
acl.entry(
roles = acl.LOGDOG_WRITER,
- groups = 'luci-logdog-chromium-writers',
+ groups = "luci-logdog-chromium-writers",
),
acl.entry(
roles = acl.SCHEDULER_OWNER,
- groups = 'project-chromium-admins',
+ groups = "project-chromium-admins",
),
],
)
@@ -72,27 +86,51 @@ luci.project(
luci.cq(
submit_max_burst = 2,
submit_burst_delay = time.minute,
- status_host = 'chromium-cq-status.appspot.com',
+ status_host = "chromium-cq-status.appspot.com",
)
luci.logdog(
- gs_bucket = 'chromium-luci-logdog',
+ gs_bucket = "chromium-luci-logdog",
)
luci.milo(
- logo = 'https://storage.googleapis.com/chrome-infra-public/logo/chromium.svg',
+ logo = "https://storage.googleapis.com/chrome-infra-public/logo/chromium.svg",
+)
+
+luci.notify(
+ tree_closing_enabled = True,
+)
+
+# An all-purpose public realm.
+luci.realm(
+ name = "public",
+ bindings = [
+ luci.binding(
+ roles = "role/buildbucket.reader",
+ groups = "all",
+ ),
+ luci.binding(
+ roles = "role/resultdb.invocationCreator",
+ groups = "project-chromium-tryjob-access",
+ ),
+ # Other roles are inherited from @root which grants them to group:all.
+ ],
)
-exec('//recipes.star')
+exec("//swarming.star")
-exec('//notifiers.star')
+exec("//recipes.star")
-exec('//subprojects/chromium/main.star')
-master_only_exec('//subprojects/findit/main.star')
-master_only_exec('//subprojects/goma/main.star')
-master_only_exec('//subprojects/webrtc/main.star')
+exec("//notifiers.star")
+
+exec("//subprojects/chromium/subproject.star")
+branches.exec("//subprojects/codesearch/subproject.star")
+branches.exec("//subprojects/findit/subproject.star")
+branches.exec("//subprojects/goma/subproject.star")
+branches.exec("//subprojects/webrtc/subproject.star")
+
+branches.exec("//generators/cq-builders-md.star")
-master_only_exec('//generators/cq-builders-md.star')
# This should be exec'ed before exec'ing scheduler-noop-jobs.star because
# attempting to read the buildbucket field that is not set for the noop jobs
# actually causes an empty buildbucket message to be set
@@ -100,14 +138,15 @@ master_only_exec('//generators/cq-builders-md.star')
# problems when the number of builders with the same name goes from 1 to >1 or
# vice-versa. This generator makes sure both the bucketed and non-bucketed IDs
# work so that there aren't transient failures when the configuration changes
-master_only_exec('//generators/scheduler-bucketed-jobs.star')
+branches.exec("//generators/scheduler-bucketed-jobs.star")
+
# TODO(https://crbug.com/819899) There are a number of noop jobs for dummy
# builders defined due to legacy requirements that trybots mirror CI bots
# no-op scheduler jobs are not supported by the lucicfg libraries, so this
# generator adds in the necessary no-op jobs
# The trybots should be update to not require no-op jobs to be triggered so that
# the no-op jobs can be removed
-exec('//generators/scheduler-noop-jobs.star')
-exec('//generators/sort-consoles.star')
+exec("//generators/scheduler-noop-jobs.star")
+exec("//generators/sort-consoles.star")
-exec('//validators/builders-in-consoles.star')
+exec("//validators/builders-in-consoles.star")