blob: acdcd73db10265873d53c7e23055eccb5931516d [file] [log] [blame]
// Copyright 2018 The LUCI Authors.
//
// 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.
// Schemas for service configs.
syntax = "proto3";
package buildbucket;
import "go.chromium.org/luci/buildbucket/proto/project_config.proto";
option go_package = "go.chromium.org/luci/buildbucket/proto;buildbucketpb";
// Schema of settings.cfg file, a service config.
message SettingsCfg {
// Swarmbucket settings.
SwarmingSettings swarming = 1;
LogDogSettings logdog = 2;
ResultDBSettings resultdb = 4;
// List of Gerrit hosts to force git authentication for.
//
// By default public hosts are accessed anonymously, and the anonymous access
// has very low quota. Context needs to know all such hostnames in advance to
// be able to force authenticated access to them.
repeated string known_public_gerrit_hosts = 3;
}
// Swarmbucket settings.
message SwarmingSettings {
reserved 1; // default_hostname
// Swarmbucket build URLs will point to this Milo instance.
string milo_hostname = 2;
// These caches are available to all builders implicitly.
// A builder may override a cache specified here.
repeated Builder.CacheEntry global_caches = 4;
// CIPD package. Does not specify installation path.
message Package {
// CIPD package name, e.g. "infra/python/cpython/${platform}"
string package_name = 1;
// CIPD instance version, e.g. "version:2.7.15.chromium14".
// Used for non-canary builds.
string version = 2;
// CIPD instance version for canary builds.
// Defaults to version.
string version_canary = 3;
// Include in builders matching the predicate.
BuilderPredicate builders = 4;
// Subdirectory to install the package into, relative to the installation
// root. Useful if installing two packages at the same root would conflict.
string subdir = 5;
}
// Packages available to the user executable in $PATH.
// Installed in "{TASK_RUN_DIR}/cipd_bin_packages".
// "{TASK_RUN_DIR}/cipd_bin_packages" and
// "{TASK_RUN_DIR}/cipd_bin_packages/bin" are prepended to $PATH.
repeated Package user_packages = 5;
reserved 6; // luci_runner_package
// Package of buildbucket agent,
// https://chromium.googlesource.com/infra/luci/luci-go/+/HEAD/buildbucket/cmd/bbagent
// used to run LUCI executables.
Package bbagent_package = 8;
// CIPD package of kitchen binary. DEPRECATED. TODO(nodir): remove.
Package kitchen_package = 7;
}
message LogDogSettings {
// Hostname of the LogDog instance to use, e.g. "logs.chromium.org".
string hostname = 1;
}
// A predicate for a builder.
message BuilderPredicate {
// OR-connected list of regular expressions for a string
// "{project}/{bucket}/{builder}".
// Each regex is wrapped in ^ and $ automatically.
// Examples:
//
// # All builders in "chromium" project
// regex: "chromium/.+"
// # A specific builder.
// regex: "infra/ci/infra-continuous-trusty-64"
//
// Defaults to [".*"].
repeated string regex = 1;
// Like regex field, but negation. Negation always wins.
repeated string regex_exclude = 2;
}
message ResultDBSettings {
// Hostname of the ResultDB instance to use, e.g. "results.api.cr.dev".
string hostname = 1;
}