| # Copyright 2020 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| load("./config.star", "DEFAULT_CONFIG", "config") |
| load("@stdlib//internal/luci/proto.star", "cq_pb") |
| |
| def _generate_outages_file(ctx): |
| config_to_write = {} |
| for a in dir(config): |
| value = getattr(config, a) |
| if value != getattr(DEFAULT_CONFIG, a): |
| config_to_write[a] = value |
| ctx.output["outages.pyl"] = "\n".join([ |
| "# This is a non-LUCI generated file", |
| "# This details the current configuration modifications for outages settings", |
| repr(config_to_write), |
| "", |
| ]) |
| |
| lucicfg.generator(_generate_outages_file) |
| |
| def _disable_cq_experiments(ctx): |
| if not config.disable_cq_experiments: |
| return |
| |
| for c in ctx.output["luci/commit-queue.cfg"].config_groups: |
| if c.verifiers.tryjob == cq_pb.Verifiers.Tryjob(): |
| # Accessing the tryjob field where it wasn't set causes it to be set |
| # to an empty message and added to the output |
| c.verifiers.tryjob = None |
| continue |
| for b in c.verifiers.tryjob.builders: |
| if not b.experiment_percentage: |
| continue |
| project, bucket, _ = b.name.split("/", 2) |
| if project == "chromium" and bucket == "try": |
| b.includable_only = True |
| b.experiment_percentage = 0 |
| b.location_filters.clear() |
| |
| lucicfg.generator(_disable_cq_experiments) |