| 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; |
| } |