blob: 8c83488f593d129c5b5664447ad0498e73d15d45 [file] [log] [blame]
syntax = "proto3";
package chromiumos;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/chromiumos";
// Common message definitions.
// BuildTarget encapsulates a number of related arguments. At the moment, the
// usage of specific arguments is on a per endpoint basis, but will converge
// to support a standard set as time goes on.
// BuildTarget is a more appropriate name going forward for what we currently
// call "board".
message BuildTarget {
// The name of the build target (a.k.a. board name).
string name = 1;
}
// Chroot is used to define how to enter a chroot.
message Chroot {
message ChrootEnv {
// USE flags to set.
repeated UseFlag use_flags = 1;
// FEATURES flags to set.
repeated Feature features = 2;
}
// The directory containing the chroot.
string path = 1;
// The cache directory override.
string cache_dir = 2;
// Environment configuration.
ChrootEnv env = 3;
// The directory where the chrome source should be mounted.
string chrome_dir = 4;
// The goma config.
GomaConfig goma = 5;
}
// FEATURES environment variable component message.
message Feature {
string feature = 1;
}
message GomaConfig {
// The goma install location.
// Required.
string goma_dir = 1;
// The goma client credentials file.
string goma_client_json = 2;
// Path to the Goma client used for build package.
// If None, goma_dir will be used instead.
string chromeos_goma_dir = 3;
}
// Message describing a package, The corresponding variable names are from
// https://devmanual.gentoo.org/ebuild-writing/variables/index.html
message PackageInfo {
// The package name (PN variable).
string package_name = 1;
// The package category (CATEGORY variable).
string category = 2;
// The package version and revision (PVR variable).
string version = 3;
}
// A message to clarify inside/outside chroot paths.
message Path {
// Location enum; whether the resource is inside or outside of the chroot.
enum Location {
NO_LOCATION = 0;
INSIDE = 1;
OUTSIDE = 2;
}
// The path to the resource.
string path = 1;
// The path location.
Location location = 2;
}
// A message used to indicate an output location for results. Specifically,
// this is used to automatically transfer files out of the chroot when needed.
// Note: No more than one ResultPath per message can be supported.
message ResultPath {
// Required.
// The result directory information.
Path path = 1;
}
// Message for USE flags.
message UseFlag {
// The use flag.
string flag = 1;
}
// The types of images that can be built.
// These correspond to support types in lib/constants.py such
// as IMAGE_TYPE_BASE, IMAGE_TYPE_RECOVERY, and so on.
enum ImageType {
IMAGE_TYPE_UNDEFINED = 0;
BASE = 1;
DEV = 2;
TEST = 3;
BASE_VM = 4;
TEST_VM = 5;
RECOVERY = 6;
FACTORY = 7;
FIRMWARE = 8;
CR50_FIRMWARE = 9;
}
// The various channels that we release through.
enum Channel {
CHANNEL_UNSPECIFIED = 0;
CHANNEL_STABLE = 1;
CHANNEL_BETA = 2;
CHANNEL_DEV = 3;
CHANNEL_CANARY = 4;
}
// A wrapper around a serialized protocol buffer.
message ProtoBytes {
bytes serialized_proto = 1;
}